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();
	}
}
最近下载更多
www-chrome LV62020年8月23日
月亮星星星星
dl51918 LV32020年6月23日
星星星星星星
hola123 LV32020年5月14日
星星星星星星
zd5468 LV72020年4月27日
月亮星星星星星星
pzy12345 LV82020年3月30日
月亮月亮
java小书童 LV142019年12月12日
月亮月亮月亮星星星星
2952608435 LV12019年10月23日
星星
zywzywzyw1 LV172019年9月28日
太阳星星
tianboguang LV72019年8月19日
月亮星星星星星星
cxdxfx12 LV102019年8月5日
月亮月亮星星星星
最近浏览更多
5436668266月4日
暂无贡献等级
zx54321 LV123月30日
月亮月亮月亮
能不能不存在 LV133月4日
月亮月亮月亮星星
dongzhan LV102020年12月8日
月亮月亮星星星星
kelvin007008 LV72020年11月17日
月亮星星星星星星
啊最代码我要下 LV152020年9月27日
月亮月亮月亮星星星星星星
死神的眷恋 LV112020年9月9日
月亮月亮星星星星星星
www-chrome LV62020年8月23日
月亮星星星星
wangyan111111 LV72020年8月17日
月亮星星星星星星
han329574 LV62020年7月21日
月亮星星星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友