- 浏览: 268522 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
夏保森:
太简单了,而且不是太好用,我现在项目就是要实现这样一个功能,比 ...
前台拼接SQL语句 -
人参萝卜:
楼主你好,想要一下这个样例工程的源码,能否分享一下,多谢多谢! ...
MxGraph web流程设计器破解 -
814292160:
为什么解压不了
extjs多文件上传 -
dongqing82585061:
楼主你好,能给份这个demo给我吗?现在我刚好需要实现类似的效 ...
MxGraph web流程设计器破解 -
ddccjjwwjj:
在JBPM中你的连线坐标根本无法做到JBPM的效果 全部会变形 ...
MxGraph web流程设计器破解
package com.elkan.kindeditor.upload; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Random; 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.FileItemFactory; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import com.elkan.utils.ImageUtil; /** * 实现KindEditor图片上传的Servlet * * @author SENHUI * * @since 2011/03/21 20:20:23 */ public class UploadImage extends HttpServlet { private static final long serialVersionUID = 5121794650920770832L; // 上传图片的最大宽度 protected int MAX_WIDTH = -1; // 上传图片的最大高度 protected int MAX_HEIGHT = -1; // 上传图片的大小 protected long MAX_SIZE = 1000000; // 定义允许上传的图片的扩展名 protected String[] IMAGETYPES = new String[] { "gif", "jpg", "jpeg", "png", "bmp" }; // 定义上传图片保存目录路径 protected String UPLOAD_PATH = ""; // 上传图片设置信息 protected String id = ""; // 上传图片的TITLE属性值 protected String imgTitle = ""; protected int imgWidth = -1; protected int imgHeight = -1; protected String imgBorder = ""; protected String resizeImg = ""; protected boolean isFlag = false; protected String tempTitle = ""; @SuppressWarnings("deprecation") @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); String savePath = this.getInitParameter("UPLOAD_PATH"); if (savePath == null || savePath.isEmpty()) { out.println(alertMsg("你还没设置上传图片保存的目录路径!")); return; } //判断是否设置了上传图片的大小 if(this.getInitParameter("MAX_SIZE") != null){ MAX_SIZE = Integer.parseInt(this.getInitParameter("MAX_SIZE")); } //判断是否设置了上传图片的类型 if(this.getInitParameter("IMAGETYPES") != null){ IMAGETYPES = toArray(this.getInitParameter("IMAGETYPES")); } // 图片保存目录路径 String uploadPath = new StringBuffer(request.getSession().getServletContext().getRealPath("/")).append(savePath).toString(); // 图片保存目录URL String saveUrl = new StringBuffer(request.getContextPath()).append("/").append(savePath).toString(); // 检查上传图片是否存在 if (!ServletFileUpload.isMultipartContent(request)) { out.println(alertMsg("请选择你要上传的图片!")); return; } // 检查目录 File uploadDir = new File(uploadPath); if (!uploadDir.isDirectory()) { out.println(alertMsg("上传图片保存的目录不存在。")); return; } // 检查目录写权限 if (!uploadDir.canWrite()) { out.println(alertMsg("上传图片保存的目录没有写权限。")); return; } // 准备上传图片 FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8"); List<?> items = null; String temp = null; try { items = upload.parseRequest(request); Iterator<?> itr = items.iterator(); while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); // 上传图片的原文件名 String fileName = item.getName(); temp = (String) item.getName(); if(temp != null && !isFlag){ temp = temp.substring(temp.lastIndexOf("\\")+1); tempTitle = temp; isFlag = true; } // KindEditor编辑器的ID if(((String)item.getFieldName()).equals("id")){ id = item.getString(); } // 上传图片的重新提示 if(((String)item.getFieldName()).equals("imgTitle")){ imgTitle = item.getString(); if(imgTitle != null){ imgTitle = new String(imgTitle.getBytes("ISO8859-1"),"UTF-8"); } } // 设置图片的宽度 if(((String)item.getFieldName()).equals("imgWidth")){ String imgWidth = item.getString(); if(imgWidth != null && !imgWidth.isEmpty()){ this.imgWidth = Integer.parseInt(imgWidth); } } // 设置图片的高度 if(((String)item.getFieldName()).equals("imgHeight")){ String imgHeight = item.getString(); if(imgHeight != null && !imgHeight.isEmpty()){ this.imgHeight = Integer.parseInt(imgHeight); } } // 设置图片的边框 if(((String)item.getFieldName()).equals("imgBorder")){ imgBorder = item.getString(); } long fileSize = item.getSize(); if (!item.isFormField()) { // 检查文件大小 if (fileSize > MAX_SIZE) { out.println(alertMsg("上传文件大小超过限制。")); return; } // 检查扩展名 String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); if (!Arrays.<String> asList(IMAGETYPES).contains(fileExt)) { out.println(alertMsg("上传图片扩展名是不允许的扩展名。")); return; } // 根据时间创建文件夹 SimpleDateFormat folderNameFormat = new SimpleDateFormat("yyyyMMdd"); String realPath = uploadPath + folderNameFormat.format(new Date()); File folder = new File(realPath); boolean flag = folder.exists(); // 确认文件夹是否已经存在 if(!flag){ flag = folder.mkdir(); } // 创建文件夹并上传图片 if(flag){ SimpleDateFormat fileNameFormat = new SimpleDateFormat("yyyyMMddHHmmss"); String newFileName = fileNameFormat.format(new Date()) + "_"+ new Random().nextInt(1000) + "." + fileExt; File uploadedFile = new File(realPath, newFileName); item.write(uploadedFile); resizeImg = uploadedFile.getPath(); resizeImg = resizeImg.replaceAll("\\\\", "/"); saveUrl += folderNameFormat.format(new Date()) + "/" + newFileName; }else{ System.out.println(" 文件夹创建失败,请确认磁盘没有写保护并且空件足够"); } } } // 判断是否设置图片的最大宽度与高度 String max_width = this.getInitParameter("MAX_WIDTH"); String max_height = this.getInitParameter("MAX_HEIGHT"); if((max_width != null && !max_width.isEmpty())){ MAX_WIDTH = Integer.parseInt(max_width); } if(max_height != null && !max_height.isEmpty()){ MAX_HEIGHT = Integer.parseInt(max_height); } if(imgTitle == null || imgTitle.isEmpty()){ imgTitle = tempTitle; } // 判断是否要压缩图片 if(MAX_WIDTH != -1 || MAX_HEIGHT != -1) { // 压缩图片 ImageUtil.resizeImg(resizeImg, resizeImg, MAX_WIDTH, MAX_HEIGHT); if(this.imgWidth > ImageUtil.ImgWidth){ this.imgWidth = ImageUtil.ImgWidth; } if(this.imgHeight > ImageUtil.ImgHeight){ this.imgHeight = ImageUtil.ImgHeight; } // 返回编辑器 out.println(insertEditor(id, saveUrl, imgTitle, imgWidth, imgHeight, imgBorder)); }else{ // 返回编辑器 out.println(insertEditor(id, saveUrl, imgTitle, imgWidth, imgHeight, imgBorder)); } } catch (FileUploadException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }finally{ out.flush(); out.close(); isFlag = false; } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } /** * 输出打印上传失败的JSON语句 * * @param message 失败信息 * * @return 页面上传失败的JSON语句 */ public String alertMsg(String message) { StringBuffer sb = new StringBuffer("{\"error\":\"1\",\"message\":\""); sb.append(message).append("\"}"); return sb.toString(); } /** * 输出插入图片至编辑器语句的脚本 * * @param id 编辑器ID * * @param saveUrl 上传图片的浏览地址 * * @param imgTitle 图片的提示信息 * * @param imgWidth 设置图片的宽度 * * @param imgHeight 设置图片的宽度 * * @param imgBorder 设置图片的边框 * * @return 插入图片至编辑器的脚本语句 */ public String insertEditor(String id, String saveUrl, String imgTitle, int imgWidth, int imgHeight, String imgBorder){ StringBuffer sb = new StringBuffer("<script type\"text/javascript\">"); sb.append("parent.KE.plugin[\"image\"].insert(\"").append(id).append("\",\""); sb.append(saveUrl).append("\",\"").append(imgTitle).append("\",\""); sb.append(imgWidth).append("\",\"").append(imgHeight).append("\",\""); sb.append(imgBorder).append("\");"); sb.append("</script>"); return sb.toString(); } /** * 输出允许上传图片类型的数组 * * @param filesType 允许上传的图片类型 * * @return 允许上传图片类型 */ public String[] toArray(String filesType){ if(filesType == null){ return null; } String[] types = filesType.split(","); String[] allowTypes = new String[types.length]; int i = 0; for(String type : types){ allowTypes[i] = type; i++; } return allowTypes; } }
2.上传图片管理类
package com.elkan.kindeditor.upload; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Hashtable; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class UploadImageManager extends HttpServlet { private static final long serialVersionUID = -8359652838938248988L; // 定义允许上传的图片的扩展名 protected String[] FILETYPES = new String[] { "gif", "jpg", "jpeg", "png", "bmp" }; // 定义上传图片保存目录路径 protected String UPLOAD_PATH = ""; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); String savePath = this.getInitParameter("UPLOAD_PATH"); if (savePath == null || savePath.isEmpty()) { out.println(alertMsg("你还没设置读取上传图片保存的目录路径!")); return; } // 图片保存目录路径 String rootPath = new StringBuffer(request.getSession().getServletContext().getRealPath("/")).append(savePath).toString(); // 图片保存目录URL String rootUrl = new StringBuffer(request.getContextPath()).append("/").append(savePath).toString(); //根据path参数,设置各路径和URL String path = request.getParameter("path") != null ? request.getParameter("path") : ""; String currentPath = rootPath + path; String currentUrl = rootUrl + path; String currentDirPath = path; String moveupDirPath = ""; if (!"".equals(path)) { String str = currentDirPath.substring(0, currentDirPath.length() - 1); moveupDirPath = str.lastIndexOf("/") >= 0 ? str.substring(0, str.lastIndexOf("/") + 1) : ""; } //排序形式,name or size or type String order = request.getParameter("order") != null ? request.getParameter("order").toLowerCase() : "name"; //不允许使用..移动到上一级目录 if (path.indexOf("..") >= 0) { out.println(alertMsg("不允许使用移动到上一级目录")); return; } //最后一个字符不是/ if (!"".equals(path) && !path.endsWith("/")) { out.println("Parameter is not valid."); return; } //目录不存在或不是目录 File currentPathFile = new File(currentPath); if(!currentPathFile.isDirectory()){ out.println("Directory does not exist."); return; } //遍历目录取的文件信息 List<Hashtable<?,?>> fileList = new ArrayList<Hashtable<?,?>>(); if(currentPathFile.listFiles() != null) { for (File file : currentPathFile.listFiles()) { Hashtable<String, Object> hash = new Hashtable<String, Object>(); String fileName = file.getName(); if(file.isDirectory()) { hash.put("is_dir", true); hash.put("has_file", (file.listFiles() != null)); hash.put("filesize", 0L); hash.put("is_photo", false); hash.put("filetype", ""); } else if(file.isFile()){ String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); hash.put("is_dir", false); hash.put("has_file", false); hash.put("filesize", file.length()); hash.put("is_photo", Arrays.<String>asList(FILETYPES).contains(fileExt)); hash.put("filetype", fileExt); } hash.put("filename", fileName); hash.put("datetime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(file.lastModified())); fileList.add(hash); } } if ("size".equals(order)) { Collections.sort(fileList, new SizeComparator()); } else if ("type".equals(order)) { Collections.sort(fileList, new TypeComparator()); } else { Collections.sort(fileList, new NameComparator()); } out.println(toJSONString(currentUrl, currentDirPath, moveupDirPath, fileList)); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } /** * 输出打印上传失败语句的脚本 * * @param message 失败信息 * * @return 页面打印的脚本语句 */ public String alertMsg(String message) { StringBuffer sb = new StringBuffer("<script type\"text/javascript\">"); sb.append("alert(\"").append(message).append("\");"); sb.append("</script>"); return sb.toString(); } public String toJSONString(String currentUrl, String currentDirPath, String moveupDirPath, List<Hashtable<?, ?>> fileList){ StringBuilder sb = new StringBuilder("{\"current_url\":\""); sb.append(currentUrl).append("\",").append("\"current_dir_path\":\""); sb.append(currentDirPath).append("\",\"moveup_dir_path\":\"").append(moveupDirPath).append("\","); sb.append("\"file_list\":["); int i = 0; sb.append("{"); for(Hashtable<?,?> he : fileList){ if(i != (fileList.size() - 1)){ sb.append("\"filename\":\"").append(he.get("filename")).append("\","); sb.append("\"filesize\":").append(he.get("filesize")).append(","); sb.append("\"filetype\":\"").append(he.get("filetype")).append("\","); sb.append("\"has_file\":").append(he.get("has_file")).append(","); sb.append("\"is_dir\":").append(he.get("is_dir")).append(","); sb.append("\"is_photo\":").append(he.get("is_photo")).append(","); sb.append("\"datetime\":\"").append(he.get("datetime")).append("\""); sb.append("},{"); }else{ sb.append("\"filename\":\"").append(he.get("filename")).append("\","); sb.append("\"filesize\":").append(he.get("filesize")).append(","); sb.append("\"filetype\":\"").append(he.get("filetype")).append("\","); sb.append("\"has_file\":").append(he.get("has_file")).append(","); sb.append("\"is_dir\":").append(he.get("is_dir")).append(","); sb.append("\"is_photo\":").append(he.get("is_photo")).append(","); sb.append("\"datetime\":\"").append(he.get("datetime")).append("\""); sb.append("}"); } i++; } i = 0; sb.append("],\"total_count\":").append(fileList.size()).append("}"); return sb.toString(); } public class NameComparator implements Comparator<Object> { public int compare(Object a, Object b) { Hashtable<?, ?> hashA = (Hashtable<?, ?>) a; Hashtable<?, ?> hashB = (Hashtable<?, ?>) b; if (((Boolean) hashA.get("is_dir")) && !((Boolean) hashB.get("is_dir"))) { return -1; } else if (!((Boolean) hashA.get("is_dir")) && ((Boolean) hashB.get("is_dir"))) { return 1; } else { return ((String) hashA.get("filename")).compareTo((String) hashB.get("filename")); } } } public class SizeComparator implements Comparator<Object> { public int compare(Object a, Object b) { Hashtable<?, ?> hashA = (Hashtable<?, ?>) a; Hashtable<?, ?> hashB = (Hashtable<?, ?>) b; if (((Boolean) hashA.get("is_dir")) && !((Boolean) hashB.get("is_dir"))) { return -1; } else if (!((Boolean) hashA.get("is_dir")) && ((Boolean) hashB.get("is_dir"))) { return 1; } else { if (((Long) hashA.get("filesize")) > ((Long) hashB.get("filesize"))) { return 1; } else if (((Long) hashA.get("filesize")) < ((Long) hashB.get("filesize"))) { return -1; } else { return 0; } } } } public class TypeComparator implements Comparator<Object> { public int compare(Object a, Object b) { Hashtable<?, ?> hashA = (Hashtable<?, ?>) a; Hashtable<?, ?> hashB = (Hashtable<?, ?>) b; if (((Boolean) hashA.get("is_dir")) && !((Boolean) hashB.get("is_dir"))) { return -1; } else if (!((Boolean) hashA.get("is_dir")) && ((Boolean) hashB.get("is_dir"))) { return 1; } else { return ((String) hashA.get("filetype")).compareTo((String) hashB.get("filetype")); } } } }
3.上传附件的类
package com.elkan.kindeditor.upload; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Random; 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.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadAccessory extends HttpServlet { private static final long serialVersionUID = 1L; // 上传文件的大小 protected long MAX_SIZE = 1000000; // 定义允许上传的文件的扩展名 protected String[] FILETYPES = new String[]{"doc", "xls", "ppt", "pdf", "txt", "rar" , "zip"}; // 定义上传文件保存目录路径 protected String UPLOAD_PATH = ""; protected String id = ""; protected String attachTitle = ""; protected boolean isFlag = false; protected String tempTitle = ""; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); String savePath = this.getInitParameter("UPLOAD_PATH"); if (savePath == null || savePath.isEmpty()) { out.println(alertMsg("你还没设置上传文件保存的目录路径!")); return; } //判断是否设置了上传文件的大小 if(this.getInitParameter("MAX_SIZE") != null){ MAX_SIZE = Integer.parseInt(this.getInitParameter("MAX_SIZE")); } //判断是否设置了上传文件的类型 if(this.getInitParameter("FILETYPES") != null){ FILETYPES = toArray(this.getInitParameter("FILETYPES")); } // 文件保存目录路径 String uploadPath = new StringBuffer(request.getSession().getServletContext().getRealPath("/")).append(savePath).toString(); // 文件保存目录URL String saveUrl = new StringBuffer(request.getContextPath()).append("/").append(savePath).toString(); if(!ServletFileUpload.isMultipartContent(request)){ out.println(alertMsg("请选择要上传的文件。")); return; } //检查目录 File uploadDir = new File(uploadPath); if(!uploadDir.isDirectory()){ out.println(alertMsg("上传目录不存在。")); return; } //检查目录写权限 if(!uploadDir.canWrite()){ out.println(alertMsg("当前角色对上传目录没有写权限。")); return; } FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8"); String temp = null; String ext = null; try{ List<?> items = upload.parseRequest(request); Iterator<?> itr = items.iterator(); while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); String fileName = item.getName(); temp = (String) item.getName(); if(temp != null && !isFlag){ temp = temp.substring(temp.lastIndexOf("\\")+1); tempTitle = temp; isFlag = true; } // KindEditor编辑器的ID if(((String)item.getFieldName()).equals("id")){ id = item.getString(); } // 上传图片的重新提示 if(((String)item.getFieldName()).equals("attachTitle")){ attachTitle = item.getString(); if(attachTitle != null){ attachTitle = new String(attachTitle.getBytes("ISO8859-1"),"UTF-8"); } } if (!item.isFormField()) { //检查文件大小 if(item.getSize() > MAX_SIZE){ out.println(alertMsg("上传文件大小超过限制。")); return; } //检查扩展名 String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); if(!Arrays.<String>asList(FILETYPES).contains(fileExt)){ out.println(alertMsg("上传文件扩展名是不允许的扩展名。")); return; } // 根据时间创建文件夹 SimpleDateFormat folderNameFormat = new SimpleDateFormat("yyyyMMdd"); String realPath = uploadPath + folderNameFormat.format(new Date()); File folder = new File(realPath); boolean flag = folder.exists(); // 确认文件夹是否已经存在 if(!flag){ flag = folder.mkdir(); } // 创建文件夹并上传图片 if(flag){ SimpleDateFormat fileNameFormat = new SimpleDateFormat("yyyyMMddHHmmss"); String newFileName = fileNameFormat.format(new Date()) + "_"+ new Random().nextInt(1000) + "." + fileExt; File uploadedFile = new File(realPath, newFileName); item.write(uploadedFile); saveUrl += folderNameFormat.format(new Date()) + "/" + newFileName; ext = fileExt; }else{ System.out.println(" 文件夹创建失败,请确认磁盘没有写保护并且空件足够"); } } } if(attachTitle == null || attachTitle.isEmpty()){ attachTitle = tempTitle; } out.println(insertAttach(id, saveUrl, attachTitle, ext)); }catch(Exception e){ e.printStackTrace(); }finally{ out.flush(); out.close(); isFlag = false; } } /** * 输出打印上传失败语句的脚本 * * @param message 失败信息 * * @return 页面打印的脚本语句 */ public String alertMsg(String message){ StringBuilder sb = new StringBuilder("<html>"); sb.append("<head>").append("<title>error</title>"); sb.append("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"); sb.append("</head>"); sb.append("<body>"); sb.append("<script type=\"text/javascript\">"); sb.append("alert(\"").append(message).append("\");history.back();</script>"); sb.append("</body>").append("</html>"); return sb.toString(); } /** * 输出插入附件至编辑器语句的脚本 * * @param id 编辑器ID * * @param url 上传附件的地址 * * @param title 上传时设置的title属性 * * @param ext 上传文件的后缀名 * * @return 插入附件至编辑器的脚本语句 */ public String insertAttach(String id, String url, String title, String ext){ StringBuilder sb = new StringBuilder("<html>"); sb.append("<head>").append("<title>Insert Accessory</title>"); sb.append("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"); sb.append("</head>"); sb.append("<body>"); sb.append("<script type=\"text/javascript\">"); sb.append("parent.KE.plugin[\"accessory\"].insert(\"").append(id).append("\",\""); sb.append(url).append("\",\"").append(title).append("\",\"").append(ext).append("\");</script>"); sb.append("</body>").append("</html>"); return sb.toString(); } /** * 输出允许上传图片类型的数组 * * @param filesType 允许上传的图片类型 * * @return 允许上传图片类型 */ public String[] toArray(String filesType){ if(filesType == null){ return null; } String[] types = filesType.split(","); String[] allowTypes = new String[types.length]; int i = 0; for(String type : types){ allowTypes[i] = type; i++; } return allowTypes; } }
4.压缩图片的类
package com.elkan.utils; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; /** * 对图片进行处理的方法 * * @author SENHUI */ public class ImageUtil { public static int ImgWidth = -1; public static int ImgHeight = -1; /** * 压缩图片 * * @param imgsrc * 源文件 * @param imgdist * 目标文件 * @param widthdist * 宽 * @param heightdist * 高 */ public static void resizeImg(String imgsrc, String imgdist, int widthdist, int heightdist) { try { File srcfile = new File(imgsrc); if (!srcfile.exists()) { return; } Image src = ImageIO.read(srcfile); ImgWidth = src.getWidth(null); ImgHeight = src.getHeight(null); if(ImgWidth < widthdist){ widthdist = ImgWidth; }else{ ImgWidth = widthdist; } if(ImgHeight < heightdist){ heightdist = ImgHeight; }else{ ImgHeight = heightdist; } BufferedImage tag = new BufferedImage(widthdist, heightdist,BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(src.getScaledInstance(widthdist, heightdist,Image.SCALE_SMOOTH), 0, 0, null); FileOutputStream out = new FileOutputStream(imgdist); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(tag); out.close(); } catch (IOException ex) { ex.printStackTrace(); } } }
感谢senhui19开源代码,很经典,收藏了
http://senhui19.iteye.com/blog/1028917
- JSP版的完善KindEditor在线编辑器.7z (1020.9 KB)
- 下载次数: 48
发表评论
-
dhtmlx 2.5破解版
2012-03-09 15:30 2920dhtmlx 2.5破解版 -
前台拼接SQL语句
2012-02-29 12:20 2105<?xml version="1.0" ... -
FusionCharts 破解
2012-01-15 22:47 1043FusionCharts_Widgets_PowerChart ... -
JQuery zTree 很不错的一个TREE
2012-01-10 20:34 852http://www.baby666.cn/hunter/in ... -
Struts2中list排序 sort标签按降序排列
2011-07-18 03:01 3925struts2中sort标签默认是按升序排列的,如果想按降序排 ... -
js浮动toolbar
2011-07-09 12:41 1832这几天做程序一直在找浮动的toolbar 找到个比较好的 ... -
MxGraph web流程设计器破解
2011-03-15 23:04 4544与JBPM结合可以做最好的web流程设计器,这里找了2个破解 ... -
TBCompressor_v2.4 非常好的js 和 css 压缩工具
2011-01-21 15:28 1512淘宝前端的开发环境以Windows居多。为了方便使用,对YUI ... -
JS屏幕尺寸
2010-11-14 01:16 1057<!DOCTYPE HTML PUBLIC " ... -
随IE滚动的按钮
2010-11-14 01:13 852随IE滚动的按钮 -
json lib 转换时间
2010-11-11 01:53 2208Java对象中存在Date类型的对象无法进行解析,但是我又必须 ... -
There is a cycle in the hierarchy!
2010-11-07 20:39 2912在开发过程中遇到了一个JSON-LIB和Hibernate有关 ... -
Delphi简单ActiveX网页调用示例
2010-11-07 15:40 1820将来要调用用户本机相关信息Active必定是个不错的应用 D ... -
struts2-json-plugin 使用
2010-06-07 20:10 4791为了方便ajax调用传输数据,在struts2中加入的json ... -
htmlparser使用(三)
2010-05-12 14:36 1037出处:http://blog.csdn.net/ ... -
htmlparser使用(二)
2010-05-12 14:31 1845这两天准备做一些网站编程的工作,于是对HtmlParse小研究 ... -
htmlparser的使用样例
2010-05-12 14:29 1344package test; import java. ... -
htmlparser使用(一)
2010-05-12 14:26 1338需要做一个垂直搜索引 ... -
Java把汉字转拼音
2009-06-16 16:12 7304/** * 汉字转换位汉语拼音,英文字符不变 ... -
对象转换成JSON字符串的方法
2009-05-21 12:10 2311import java.lang.reflect.Field; ...
相关推荐
JSP版的完善KindEditor在线编辑器(带附件上传与图片按日期分类管理功能) 1.集合了日期、时间、在线预览和特殊字符插件,采用3.0皮肤; 2.将图片上传与管理的JSP页面改写成SERVLET,同时去除JSON包; 3.添加图片压缩...
jsp 版的KindEditor 3.5.1编辑器 外部编辑器 web编辑器 最新版的KindEditor 编辑器 适合asp jsp的编辑器 这是经过本人一个下午测试的 ,保证可以使用 在这拿出来 大家一起学习学习 QQ290273103
asp 版的KindEditor 3.5.1编辑器 外部编辑器 web编辑器 最新版的KindEditor 编辑器 适合asp jsp的编辑器 这是经过本人一个下午测试的 ,保证可以使用 在这拿出来 大家一起学习学习 QQ290273103
18种KindEditor模式HTML编辑器代码
kindeditor在线HTML代码编辑器
KindEditor富本编辑器-jsp版 直接复制到项目里直接可以用,本地路径 http://127.0.0.1:8080/KindEditor/kindeditor-4.1.10/examples/default.html
jsp版在线编辑器,支持上传本地图片,上传附件等功能
KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。 KindEditor使用JavaScript编写,可以无缝的于Java、.NET、PHP、...
kindeditor文本编辑器(asp.net中使用) 源代码都在
kindeditor在线编辑器php版,直接上传至网站根目录,参照index.php或者使用说明文档进行配置。轻松搞定在线编辑配置
直接把文件部署到tomcat里即可!jdk1.6以上 tomcat6.0以上本人测试已成功!具体上传路径已配置!部署原创在网上反编译的!
kindeditor在线编辑器
<servlet-class>com.elkan.kindeditor.upload.UploadImage</servlet-class> <!-- 上传图片保存的目录 --> <param-name>UPLOAD_PATH <param-value>uploadImg/ <!-- 限制上传图片的大小,单位字节(缺省值为1...
kindeditor在线编辑器,功能很强大可嵌入在jsp中,可获取输入文字的HTML代码。。。。
jsp版的kindeditor附件上传组件
kindEditor编辑器表情图片修改代码 kindEditor编辑器表情图片修改代码
2在要显示编辑器的地方加下面代码 <jsp:include page="kindEditor/jsp/test.jsp"> <jsp:param name="formName" value="form1"/> <jsp:param name="editorId" value="content" /> <jsp:param name="eWidth" value...
KindEditor是一套开源的HTML可视化编辑器,采用JavaScript编写,可以使用在Java、.NET、PHP、ASP程序中。 其中asp、asp.net、jsp、php四个文件夹为KindEditor在个程序中使用的代码说明;examples文件夹为KindEditor...
KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。KindEditor使用JavaScript编写,可以无缝的于Java、.NET、PHP、ASP...