81,094
社区成员
发帖
与我相关
我的任务
分享
@RequestMapping(value ="/fileUpload")
@ResponseBody
public Map<String, Object> fileUpload(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException,
FileUploadException {
//这里的路径可以是绝对路径,也可以获取项目下的目录,这里使用的是绝对路径;
//String savePath = request.getServletContext().getRealPath("/")+"yourPath/" ;
ServletContext application = request.getSession().getServletContext();
String savePath = application.getRealPath("/")+"kindeditor/" ;
//这里的路径需要符合下面另一个RequestMapping方法
// String saveUrl = request.getContextPath() + "/kindeditor/";
String saveUrl = request.getContextPath() + "/kindeditor/";
// 定义允许上传的文件扩展名
HashMap<String, String> extMap = new HashMap<String, String>();
extMap.put("image", "gif,jpg,jpeg,png,bmp");
extMap.put("flash", "swf,flv");
extMap.put("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
extMap.put("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");
// 最大文件大小 ,这里可以调节
long maxSize = 1000000;
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
if (!ServletFileUpload.isMultipartContent(request)) {
// return "e";
return getError("请选择文件。");
}
String dirName = request.getParameter("dir");
if (dirName == null) {
dirName = "image";
}
if (!extMap.containsKey(dirName)) {
return getError("目录名不正确。");
// return "e" ;
}
// 创建文件夹
savePath += dirName + "/";
saveUrl += dirName + "/";
File saveDirFile = new File(savePath);
if (!saveDirFile.exists()) {
saveDirFile.mkdirs();
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
// DateUtils sdf= new DateUtils();
String ymd = sdf.format(new Date());
savePath += ymd + "/";
saveUrl += ymd + "/";
File dirFile = new File(savePath);
if (!dirFile.exists()) {
dirFile.mkdirs();
}
//这里需要后台springmvc-servlet.xml配置multipartResolver
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
multipartRequest.setCharacterEncoding("UTF-8");
MultipartFile qqfile =multipartRequest.getFiles("imgFile").get(0);
String oldName=qqfile.getOriginalFilename();
String ext=qqfile.getOriginalFilename().substring(oldName.lastIndexOf(".") + 1);
if (!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(ext)) {
return getError("<font size='3'>非常抱歉,目前上传附件格式类型只允许为:<br/>" + extMap.get(dirName)
+ ",你选择的文件【" + oldName + "】不符合要求,无法上传!</font>");
// return "e";
}
// String fileSizeNumber = fileMaxSize.substring(0, fileMaxSize.indexOf("M"));
// if (qqfile.getSize() > Long.valueOf(fileSizeNumber) * 1000 * 1000) {
// return getError("<font size='3'>您选择的文件【" + oldName+ "】大小超过" + fileMaxSize + "限制,无法上传!</font>");
// } 暂时注销
String fileName = null;
KindUploadFile uploadFile =null;
String size=this.calculateFileSize(qqfile.getSize());
try {
String createTime= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
fileName = this.upload(qqfile, savePath);
uploadFile = new KindUploadFile();
uploadFile.setName(oldName);
uploadFile.setPath(savePath+fileName);
uploadFile.setSize(size);
uploadFile.setCreateTime(createTime);
uploadFile.setExt(ext);
filesUploadService.save(uploadFile);
Map<String, Object> succMap = new HashMap<String, Object>();
succMap.put("error", 0);
System.out.println("whg"+ saveUrl +"files"+fileName);
succMap.put("url", saveUrl + fileName);
return succMap;
// return "html5" ;
// return Json(succMap, "text/html;charset=UTF-8") ;
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage());
return getError("<font size='3'>您选择的文件【" + oldName+ "】上传失败!原因是:" + e.getMessage() + "</font>");
// return "e" ;
}
}