日期:2014-05-18  浏览次数:20597 次

求大神帮忙servlet接收上传图片的问题
我要做出网页 用servlet接收用户上传的本地图片 
<input type="file" name="pic" accept="image/*"/>
储存到WebContent 下面的images 文件夹里,文件名还保持图片的文件名
到网上看看实在看不明白
求大神指点,最好能给一个简单的例子
servlet 图片 上传

------解决方案--------------------

public class UploadServlet extends HttpServlet {

/**
 * 
 */
private static final long serialVersionUID = 1L;

@SuppressWarnings("unchecked")
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletExceptionIOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
// step1,创建一个DiskFileItemFactory对象
// 为解析器提供解析时的缺省的配置。
DiskFileItemFactory dfif = new DiskFileItemFactory();
// step2,创建一个解析器
ServletFileUpload sfu = new ServletFileUpload(dfif);
// step3,使用解析器解析
try {
// FileItem对象封装了一个表单域当中的所有的
// 数据。

List<FileItem> items = sfu.parseRequest(request);
for (int i = 0; i < items.size(); i++) {
FileItem item = items.get(i);
// 要判断是一个普通的表单域还是
// 上传文件域
if (item.isFormField()) {

// 是一个普通的表单域
String name = item.getFieldName();
String value = item.getString();
System.out.println(name + ":" + value);
} else {
// 上传文件域,要将文件保存在服务器端
ServletContext sc = this.getServletContext();

// 获得实际部署时物理路径
String path = sc.getRealPath("upload");
System.out.println(path);
// 获得上传文件的名称
String fileName = item.getName();
System.out.println(fileName);
File file = new File(path + "//" + fileName);
System.out.println(file);
item.write(file);
}
}

} catch (Exception e) {
e.printStackTrace();

}
}

}

这能看明白么?
------解决方案--------------------
http://blog.csdn.net/chenghui0317/article/details/9502143