日期:2014-05-16 浏览次数:20463 次
//这后面加的参数分别是上传文件,图片和flash CKEDITOR.replace( 'context',{filebrowserUploadUrl : 'ckupload.do?type=file', filebrowserImageUploadUrl : 'ckupload.do?type=image', filebrowserFlashUploadUrl : 'ckupload.do?type=flash' });
package info.hellolihui.action; import java.io.File; import java.io.PrintWriter; import java.util.Date; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.ServletContext; 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; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; public class CKUploadAction extends DispatchAction { //允许上传的文件后缀名 private final String[] exts = new String[]{"gif","png","jpeg","jpg","bmp"}; @Override public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("上传"); ServletContext servletContext = request.getSession().getServletContext(); // 设定上传文件路径 String path = servletContext.getRealPath("/upload") + "/"; String typeStr = request.getParameter("type"); //如果type为空则默认为上传文件 if (typeStr == null) { typeStr = "file"; } path += typeStr; // 判断文件夹是否存在,不存在则创建,此时的path还未加上文件名,为http://127.0.0.1:8080/xx/upload的格式 File dirTest = new File(path); if (!dirTest.exists()) { dirTest.mkdirs(); } System.out.println(path); //使用Apache Common组件中的fileupload进行文件上传 FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); // 文件名和文件真实路径 String newName = ""; String fileUrl = ""; String fileName = ""; //只有文件名 try { List items = upload.parseRequest(request); Map fields = new HashMap(); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) fields.put(item.getFieldName(), item.getString()); else fields.put(item.getFieldName(), item); } // CEKditor中file域的name值是upload FileItem uplFile = (FileItem) fields.get("upload"); // 获取文件名并做处理 String fileNameLong = uplFile.getName(); fileNameLong = fileNameLo