• 问题:解决上传文件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);
    }
    转载自同事工作笔记
  • 相关阅读:
    overflow:hidden三个作用
    git提交代码步骤以及创建issue事项
    Vue3.0中setup函数的使用
    样式rpx
    js函数
    数据类型
    进制转换
    事件绑定
    微信小程序基础
    “AI+”改变世界!不同领域的5大人工智能趋势
  • 原文地址:https://www.cnblogs.com/yangyang2018/p/7976109.html
Copyright © 2020-2023  润新知