图片上传:
这段是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前端:
UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function(action) {
if (action == 'uploadimage' || action == 'uploadscrawl'
|| action == 'uploadimage') {
return 'http://localhost:8080/ljquery/uploadImg.htm';/*自定义上传action*/
} else if (action == 'uploadvideo') {
return 'http://localhost:8080/ljquery/upload.jsp';
} else {
return this._bkGetActionUrl.call(this, action);
}
}
图片显示:
1,config.jon配置:
修改:"imageUrlPrefix": "http://ip:port/", /* 图片访问路径前缀 */
2,可以从上面的controller中看出,返回的是String类型,并且图片显示的整个路径就是imageUrlPrefix+controller中的url
吐槽一下:
对于图片回显问题,整整困扰了我三个小时,真TM有点坑。从网上搜索的解决方式都无法执行,最后还是突发奇想的将result转化成json类型才解决这个问题。
这里算做个笔记吧