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日