==============【应用:这一特性,springmvc文件上传时,富文本 kindEditor插件,页面返回 改为 String,解决了《文件上传浏览器兼容性问题》】
===因为所有浏览器都支持 文本格式。即String类型。
===方法返回值类型是对象,注解会转换为json对象返回浏览器,而有的浏览器不支持 json数据。===例如360.
导致文件上传失败。
代码:
@Controller
public class UploadController {
//注入图片服务器地址 ====常量放到 配置文件。====否则修改需要 停止服务器,重新编译
@Value("${IMAGE_URL}")
private String IMAGE_URL;
/**
* 需求:使用fastDFs分布式文件系统上传图片
* 请求:/pic/upload
* 参数:uploadFile
* 返回值:
* 成功时:
* {
"error" : 0,
"url" : "http://www.example.com/path/to/a.jpg",
"message":null
}
* 失败时:
* {
"error" : 1,
"url" : null,
"message":"上传失败"
}
*
*/
@RequestMapping("/pic/upload")//===请求
@ResponseBody
// public KindEditorModel uploadPic(MultipartFile uploadFile){//===参数 名
public String uploadPic(MultipartFile uploadFile){
//==######=返回String(所有浏览器都支持 文本格式,有的不支持json),解决浏览器兼容性
//===返回 String类型json字符串,===不是json对象
try {
//获取上传===文件名称
String originalFilename = uploadFile.getOriginalFilename();
//获取===文件扩展名
String extName = originalFilename.substring(originalFilename.lastIndexOf(".")+1);
//===创建fastDFS工具类对象,===实现文件上传
FastDFSClient fClient = new FastDFSClient("classpath:conf/client.conf");
//上传
//返回图片虚拟地址:group1/M00/00/00/wKhCQ1opB9uAb0VHAA1rIuRd3Es992.jpg
String url = fClient.uploadFile(uploadFile.getBytes(), extName);
//组合====图片服务器绝对地址
url = IMAGE_URL+url;
//上传图片成功
//创建KindEditorModel对象,======封装图片上传信息
KindEditorModel model = new KindEditorModel();
model.setError(0);
model.setUrl(url);
//转换json字符串
String picJson = JsonUtils.objectToJson(model);
return picJson;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
//上传图片失败
//创建KindEditorModel对象,封装图片上传信息
KindEditorModel model = new KindEditorModel();
//
model.setError(1);
model.setMesssage("上传失败");
//转换json字符串
String picJson = JsonUtils.objectToJson(model);
return picJson;
}
}
}
===案例:
==================参考博客:失败案例2:【springmvc String类型返回值, @responseBody不能返回json对象】
springmvc中方法返回值为String时@response不能返回json数据
springmvc中方法返回值为String时@response不能返回jso
|