servlet中图像上传以及缩小

本文介绍了如何在Servlet中利用Thumbnailator库进行图片上传操作,并详细讲解了四个关键步骤:获取FileItem、得到项目路径、使用Thumbnailator进行图片尺寸调整以及涉及的BufferedImage和ImageIO相关知识。通过这些步骤,实现了身份证图片的上传和尺寸减小功能。
摘要由CSDN通过智能技术生成

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());
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值