zoukankan      html  css  js  c++  java
  • 问题:解决上传文件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);
    }
    转载自同事工作笔记
  • 相关阅读:
    总结6.6 PHP后台登录和文件上传
    【017期】JavaSE面试题(十七):JVM之内存模型
    【016期】JavaSE面试题(十六):反射
    【015期】JavaSE面试题(十五):网络IO流
    【014期】JavaSE面试题(十四):基本IO流
    【013期】JavaSE面试题(十三):多线程(3)
    【012期】JavaSE面试题(十二):多线程(2)
    【011期】JavaSE面试题(十一):多线程(1)
    【010期】JavaSE面试题(十):集合之Map
    【009期】JavaSE面试题(九):集合之Set
  • 原文地址:https://www.cnblogs.com/yangyang2018/p/7976109.html
Copyright © 2011-2022 走看看