图片上传:
这段是contorller代码
@RequestMapping(value = "/uploadImg", method = RequestMethod.POST) @ResponseBody public String uploadImg( @RequestParam("upfile") MultipartFile fileName) { String url = ""; try { // 接收上传的文件 // 取扩展名 String originalFilename = fileName.getOriginalFilename(); String extName = originalFilename.substring(originalFilename .lastIndexOf(".") + 1); // 上传到图片服务器 FastDFSClient fastDFSClient = new FastDFSClient( "classpath:resource/client.conf"); url = fastDFSClient.uploadFile(fileName.getBytes(), extName); // url = IMAGE_SERVER_URL + url; System.out.println(url); // 响应上传图片的url } catch (Exception e) { e.printStackTrace(); } Map<String, Object> result = new HashMap<String, Object>(); result.put("name", fileName.getOriginalFilename());// 新的文件名 result.put("originalName", fileName.getOriginalFilename());// 原始文件名 result.put("size", fileName.getSize()); result.put("state", "SUCCESS"); result.put("url", url);// 展示图片的请求url String jStr = JSON.toJSONString(result); return jStr; // return "redirect:/page/uploadImg.htm"; }
Ueditor前端:
1 UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl; 2 UE.Editor.prototype.getActionUrl = function(action) { 3 if (action == 'uploadimage' || action == 'uploadscrawl' 4 || action == 'uploadimage') { 5 return 'http://localhost:8080/ljquery/uploadImg.htm';/*自定义上传action*/ 6 } else if (action == 'uploadvideo') { 7 return 'http://localhost:8080/ljquery/upload.jsp'; 8 } else { 9 return this._bkGetActionUrl.call(this, action); 10 } 11 }
图片显示:
1,config.jon配置:
修改:"imageUrlPrefix": "http://ip:port/", /* 图片访问路径前缀 */
2,可以从上面的controller中看出,返回的是String类型,并且图片显示的整个路径就是imageUrlPrefix+controller中的url
吐槽一下:
对于图片回显问题,整整困扰了我三个小时,真TM有点坑。从网上搜索的解决方式都无法执行,最后还是突发奇想的将result转化成json类型才解决这个问题。
这里算做个笔记吧