Thumbnailator的下载地址:http://code.google.com/p/thumbnailator/downloads/list
Java Doc : http://thumbnailator.googlecode.com/hg/javadoc/index.html
这个是人员管理系统的身份证图片上传的接口
难点1.
从请求中获得FileItem
难点2.
获得项目所在的路径
request.getRealPath("/")
难点3.
用Thumbnailator缩小原图并且保存
Thumbnails.of(path0).size(600, 600).toFile(path);
难点4.
还涉及到BufferedImage以及ImageIO等问题
<span> </span>protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
JSONObject json = new JSONObject();
int result = 0;
DiskFileItemFactory dfif = new DiskFileItemFactory();
<span> </span> ServletFileUpload sfu = new ServletFileUpload(dfif);
try {
List items = sfu.parseRequest(request);
System.out.println(items.size());
for (int i = 0; i < items.size(); i++) {
FileItem item = (FileItem) items.get(i);
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
System.out.println(name + ":" + value);
} else {
String fileName = item.getName();
String path0=request.getRealPath("/") + "bigicon/"+ fileName;
String path = request.getRealPath("/") + "icon/" + fileName;
File file = new File(path0);
System.out.println(path);
item.write(file);
System.out.println("原图上传至bigicon成功");
BufferedImage image = ImageIO.read(new File(path0));
int imageWidth = image.getWidth();
int imageHeight=image.getHeight();
if(imageHeight>600||imageWidth>600){
Thumbnails.of(path0).size(600, 600).toFile(path);
}
System.out.println("缩略到icon成功");
result = 1;
}
}
} catch (Exception e) {
e.printStackTrace();
}
json.put("result", Integer.valueOf(result));
response.getWriter().write(json.toString());
System.out.println(json.toString());
}