package servlet;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;

import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;


public class ImgServlet extends HttpServlet{

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

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		System.out.println(2);
		String x=req.getParameter("x");
		String y=req.getParameter("y");
		String w=req.getParameter("w");
		String h=req.getParameter("h");
		String img=req.getParameter("img");
		System.out.println(img);
		String file="";
		System.out.println(img.substring(img.lastIndexOf("/")+1,img.length()));
		System.out.println(req.getSession().getServletContext().getRealPath("/"));
		String s="/upload/"+img.substring(img.lastIndexOf("/")+1,img.length());
		System.out.println(s);
		try {
			file=cutImg(new File(req.getSession().getServletContext().getRealPath("/")+s),Integer.valueOf(x),Integer.valueOf(y),Integer.valueOf(w),Integer.valueOf(h));
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		PrintWriter out = resp.getWriter();  
		System.out.println(file.substring(file.indexOf("u"),file.length()));
		out.println(file.substring(file.indexOf("u"),file.length()));  
        out.flush();
	}

	@SuppressWarnings("unchecked")
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		 req.setCharacterEncoding("utf-8");  
	        resp.setContentType("text/html;charset=utf-8");  
		DiskFileItemFactory factory = new DiskFileItemFactory(); 
		ServletFileUpload sfu = new ServletFileUpload(factory);  
		
		try {
			 List<FileItem> items = sfu.parseRequest(req);
			for (int i = 0; i < items.size(); i++) {  
	             FileItem item = items.get(i);  
	             if(!item.isFormField()){  
	                 ServletContext sctx = getServletContext();  
	                 String path = sctx.getRealPath("/upload");  
	                // System.out.println(path);  
	                 //获得文件名  
	                 String fileName = item.getName();  
	                // System.out.println(fileName);  
	                 fileName = fileName.substring(fileName.lastIndexOf("/")+1);  
	                 File file = new File(path+"\\"+fileName);  
	                 if(!file.exists()){  
	                     item.write(file);
	                     String str="/img/upload\\"+fileName;
	                     req.setAttribute("img_path", str.replaceAll("\\\\", "/"));
	                     req.getRequestDispatcher("img_success.jsp").forward(req, resp);
	                 }  
	             }  
	         } 
		} catch (FileUploadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
		
	}
	@SuppressWarnings("unchecked")
	public  String cutImg(File file,Integer x,Integer y,Integer w,Integer h) throws Exception{
		 // 取得图片读入器
      Iterator readers = ImageIO.getImageReadersByFormatName("jpg");
      ImageReader reader = (ImageReader)readers.next();
      // 取得图片读入流
      InputStream source=new FileInputStream(file);
      ImageInputStream iis = ImageIO.createImageInputStream(source);
      reader.setInput(iis, true);
      // 图片参数
      ImageReadParam param = reader.getDefaultReadParam();
      Rectangle rect = new Rectangle(x,y,w,h);
      param.setSourceRegion(rect);
      BufferedImage bi = reader.read(0,param);             
      ImageIO.write(bi, "jpg",file);
		return file.getAbsolutePath();
	}
}
最近下载更多
Mayoubin2001  LV21 2022年3月26日
www-chrome  LV6 2020年8月23日
dl51918  LV3 2020年6月23日
hola123  LV3 2020年5月14日
zd5468  LV7 2020年4月27日
pzy12345  LV8 2020年3月30日
java小书童  LV18 2019年12月12日
2952608435  LV1 2019年10月23日
zywzywzyw1  LV17 2019年9月28日
tianboguang  LV7 2019年8月19日
最近浏览更多
yangk_126 2023年3月14日
暂无贡献等级
itwgy001  LV2 2022年12月9日
zzh1  LV7 2022年11月5日
wuziayng1232  LV10 2022年7月8日
1635162218  LV9 2022年5月31日
wsk588  LV26 2022年4月26日
Jeasonchan898  LV2 2022年4月26日
5204294pp  LV1 2022年4月3日
Mayoubin2001  LV21 2022年3月26日
tianli3000  LV8 2022年2月24日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友