kindeditor的圖片上傳,報如下錯誤,在網上找了很久資料也沒解決,借此寶地,求大神指教:
1、圖片上傳其實也成功了。2、圖片上傳路徑、型別也入庫成功了。
就是報如下錯誤。
org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException(AbstractHandlerExceptionResolver.java:197) - Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class java.util.HashMap]
配置情況:pom.xml ,這些也是最新的了。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<!-- spring mvc-json 依賴-->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.2</version>
</dependency>
在例外上暫停
JSON parse error
controller 部分代碼
@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" ;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/9669.html
標籤:Web 開發
上一篇:mybatis-plus-3.4.0內置插件不起作用
下一篇:與maven整合xml報錯怎么搞
