package com.kingschan.blog.web.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Calendar; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; import org.springframework.web.HttpRequestHandler; import com.baidu.ueditor.ActionEnter; /** * 文章发布时图片上传 * <pre> * 类名称:UploadImgServlet * 类描述: * 创建人:陈国祥 (kingschan) * 创建时间:2016-3-7 下午5:27:48 * 修改人:Administrator * 修改时间:2016-3-7 下午5:27:48 * 修改备注: * @version V1.0 * </pre> */ //@WebServlet("/admin/article_uploadImg.do") @Component("UploadImgServlet") public class UploadImgServlet implements HttpRequestHandler { Logger log = Logger.getLogger(UploadImgServlet.class); /** * 生成图片存放路径 * @param path_prefix * @return */ String getImgSavePath(String path_prefix){ Calendar c = Calendar.getInstance(); int year=c.get(Calendar.YEAR); int month=c.get(Calendar.MONTH)+1; int day=c.get(Calendar.DATE); String path; boolean windows=System.getProperties().get("os.name").toString().toLowerCase().startsWith("win"); if (windows) { path=String.format("%s\\%s\\%s\\%s",path_prefix, year,month,day); }else{ path=String.format("%s/%s/%s/%s",path_prefix,year,month,day); } return path; } /** * 图片url地址 * @param filename * @return */ String getImgUrl(String filename){ Calendar c = Calendar.getInstance(); int year=c.get(Calendar.YEAR); int month=c.get(Calendar.MONTH)+1; int day=c.get(Calendar.DATE); return String.format("%s/%s/%s/%s",year,month,day,filename); } @Override public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* String path = getImgSavePath(request.getRealPath("/www/upload")); File file = new File(path); if (!file.exists()) file.mkdirs(); String fileName = "";// 文件名称 *//**上传文件处理内容**//* DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload sfu = new ServletFileUpload(factory); sfu.setHeaderEncoding("UTF-8"); // 处理中文问题 sfu.setSizeMax(1024 * 1024*1024); // 限制文件大小 try { List<FileItem> fileItems = sfu.parseRequest(request); // 解码请求 for (FileItem fi : fileItems) { fileName = UUID.randomUUID()+fi.getName().substring(fi.getName().lastIndexOf("."),fi.getName().length()); File ff=new File(path, fileName); fi.write(ff); ImgWaterMark.pressText("51so.info", ff.getAbsolutePath()); log.info(ff.getAbsolutePath()); } } catch (Exception e) { e.printStackTrace(); } //获取图片url地址 String imgUrl =String.format("%s/www/upload/%s",webroot,getImgUrl(fileName)); log.info(imgUrl); response.setContentType("text/text;charset=utf-8"); PrintWriter out = response.getWriter(); out.print(imgUrl); //返回url地址 out.flush(); out.close();*/ request.setCharacterEncoding( "utf-8" ); response.setHeader("Content-Type" , "text/html"); String rootPath =request.getSession().getServletContext().getRealPath("/"); String finalstr=new ActionEnter( request, rootPath ).exec(); PrintWriter out = response.getWriter(); out.print(finalstr); //返回url地址 out.flush(); out.close(); } }