问题:解决上传文件IE浏览器弹出下载框bug?

控制器方法的返回值必须以String返回,再由js处理转换成json对象
 
$.ajaxFileUpload({
url: "/project/proj_conver_upload", // 需要链接到服务器地址
secureuri: false,
fileElementId: "fileBtn", // 文件选择框的id属性
data: {},
dataType: 'json', // 服务器返回的格式,可以是json
complete: function(response, status) {
var responseText = response.responseText;
if (responseText.indexOf(">") != -1&& (responseText.indexOf("PRE") != -1 || responseText.indexOf("pre") != -1)) {
responseText = responseText.substring(responseText.indexOf(">") + 1, responseText.lastIndexOf("<"));
}
var data = eval("(" + responseText + ")");//转换成json对象
 
if(data.retCode!="200"){
showWarning(data.msg);
return;
}else{
$("#avaImg").attr("src", data.results);
$("#projFileName").val(fileName);
$("#ava").val(data.results);
$("#fileBtn").css("display", "block");
$("#projFileNameSpan").html("");
}
},
error: function(data, status, e) {
console.log(data.msg);
}
});
 
 
 
服务器中控制层:
@RequestMapping(value = "/proj_conver_upload",method = RequestMethod.POST,produces = { "text/html;charset=UTF-8" })
@ResponseBody
public String projConverUpload(@RequestParam(value = "fileBtn", required = true) MultipartFile file,
HttpServletRequest request,HttpServletResponse response) throws Exception {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
long size = file.getSize()/1014/1014;
LOG.debug("logoImgSize: "+ size+"M");
if(size>=2){
return JsonHelper.toJsonString(new Result(CodeConstant.RETCODE_500, "图片附件不能大于2M"));
}
 
String fileName = file.getOriginalFilename();
if(!FileHelper.isPic(fileName)){
return JsonHelper.toJsonString(new Result(CodeConstant.RETCODE_500, "请上传正确的图片格式"));
}
fileName = UUIDFileName(file.getOriginalFilename());
FileUploadUtil.transferTo(file, getTempDic(request), fileName);
Result<String> result = new Result<String>();
result.setResults(FileConstant.TEMP_FILE_ROOT+"/"+fileName);
 
return JsonHelper.toJsonString(result);
}
转载自同事工作笔记

转载于:https://www.cnblogs.com/yangyang2018/p/7976109.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值