zoukankan      html  css  js  c++  java
  • 关于IE8上传文件的一些问题

    问题1:

    IE8下上传完文件后,对后台返回的JSON格式的数据,浏览器提示了下载该文件。

    原因是因为IE8还不支持'application/json"类型的响应。

    解决方法将后台返回的JSON数据以文本的形式返回,再在前台将文本解析成JSON格式。

    代码如下:

     Controller: 

        @RequestMapping(value="/doImport",method={RequestMethod.POST},produces = "text/html;charset=UTF-8")
        @ResponseBody
        public String doImport(HttpServletRequest request,HttpSession session){
           //TODO doImport;
        }

    注解里返回值转成了文本形式,并指定了编码,避免乱码。

    js:

    $("#uploadForm").ajaxSubmit({
                        url: "doImport",
                        type: "POST",
                        clearForm :true,
                        dataType : "text",
                        success: function (data) {
                  data = eval('(' + data + ')');
                  // TODO doSomething
    } });

    问题二:当没有选择文件时,chrome和IE8的在后台接受到的数据也有所不同

    正常选择文件上传时IE8:

    不存在文件时 IE8:

    这里我们上传的文件是excel,我们可以看到是否有文件上传时contentType是不同的,当没有文件上传时,显示为一个流文件。

    再看chrome的表现:

    正常上传时和IE8一致:

    没有选择文件时:

    得到的对象是一个null。

    因此我们不能简单的判断对象是否为空来确定是否有文件,还要根据MulipartFile的isEmpty方法来确定

  • 相关阅读:
    数据结构算法练习(一)
    crontab详解
    git遇到问题
    docker容器管理
    docker及服务器遇到的坑
    shell study
    低级终端IO
    高级IO
    信号处理
    UNIX日期与时间
  • 原文地址:https://www.cnblogs.com/insaneXs/p/7088557.html
Copyright © 2011-2022 走看看