解决问题:EXT4 filefield 文件上传在IE8上返回状态无效,弹出下载页面

2023-11-17

解决描述:

   EXT4  filefield  以form 文件上传,基于IE8浏览器,不管上传成功与否,返回状态无效(即success: function(fp, o) {}方法无效),并弹出下载页面

   原代码情况如下:

   1 EXT4前台视图层view        view/List.js:

    Ext.apply(this, {
            layout : {
                type : 'vbox',
                align : 'center',
                flex : 1
            },
            renderTo : document.body,
            items : [ {
                xtype : 'form',
                width : '100%',
                frame : true,
                title : '镜像方式上传',
                bodyPadding : '10 10 0',
                collapsible : true,
                jsonSubmit : true,//以JSON形式提交数据
                hidden : true,
                defaults : {
                    anchor : '100%',
                    allowBlank : false,
                    msgTarget : 'side',
                    labelWidth : 50
                },
                items : [ {
                    xtype : 'filefield',
                    itemId : 'uploadfile',
                    emptyText : '请选择文件',
                    fieldLabel : '文件',
                    name : 'photopath',
                    labelWidth : 65,
                    buttonText : '',
                    allowBlank : true
                }],
                buttons : [ {
                    text : '上传',
                    itemId : 'save'
                }, {
                    text : '重置',
                    handler : function() {
                        this.up('form').getForm().reset();
                    }
                } ]
            }]
        });


    2 EXT 前台控制层controller controller/filemanager.js:

      onSaveButtonClick:function(btn) {
      var me = this;
      var form = btn.up('form').getForm();
      if(form.isValid()){
          form.submit({
              method : 'POST',
              url: 'imagemanager/entity/headers',
              timeout:3000000,
              success: function(fp, o) {
                 Ext.toast.msg('温馨提示', '文件上传成功');   }
          });
      }
    },


3  后台控制层 @Controller   MirrorMController

@Controller
@RequestMapping(value = "/imagemanager")
public class MirrorMController {
    @ResponseBody
    @RequestMapping(value = "/entity/headers", method = RequestMethod.POST)
    public Map<String, Object> add(HttpServletRequest request) throws UnsupportedEncodingException {
       String resStr = "false";

       try {

            //处理文件上传具体代码

            resStr = "true";
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ModelMapper.success(resStr);
    }

结果出现问题,如上,Firefox火狐浏览器、谷歌浏览器Google Chrome正常返回状态,但IE8出现返回状态无效(即success: function(fp, o) {}方法无效),并弹出下载页面

Firefox火狐浏览器下运行截图:

IE8浏览器下运行截图:

4 后台控制层 @Controller   MirrorMController  方法add修改

@Controller
@RequestMapping(value = "/imagemanager")
public class MirrorMController {
    
    @RequestMapping(value = "/entity/headers", method = RequestMethod.POST)
    public ResponseEntity<String> add(HttpServletRequest request,
            HttpServletResponse response) throws UnsupportedEncodingException {
        String json = "{success: true}";
        HttpHeaders responseHeaders = new HttpHeaders();
        responseHeaders.setContentType(MediaType.TEXT_HTML);

        try {

            //处理文件上传具体代码
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new ResponseEntity<String>(json, responseHeaders, HttpStatus.OK);
    }

Firefox火狐浏览器下运行截图:

IE浏览器下运行测试正常


总结原因说明:

   IE浏览器对Content-Type = application/json,会出现下载保存

   IE浏览器对Content-Type = text/html,返回信息按html处理



说明:

1 文件上传采用common-fileupload1.3.0(由开源组20130329号发布)

2  设置DiskFileItemFactory 类内存缓冲区:factory.setSizeThreshold(8 * 1024 * 1024)时,要考虑JVM与物理内存的比例,在默认情况 JVM = MEM / 64;

在 不调整JVM缓冲区大小, 注意factory.setSizeThreshold(  <MEM / 64 ),否则运行TOMCAT后,会出现java.lang.OutOfMemoryError: Java heap space


3 文件上传采用common-fileupload1.3.0,  IE浏览器 微软规定上传文件大小:  <2G(32位操作系统),<4G(64位操作系统),其它浏览器无大小限定;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决问题:EXT4 filefield 文件上传在IE8上返回状态无效,弹出下载页面 的相关文章

随机推荐

  • [007]爬虫系列

    一 背景 有些时候网站开发者为了反爬 会做一些状态码欺骗的处理 原理如下 例如 浏览器发送一个请求 获取一个js文件 服务器返回状态码 例如 503等 此时浏览器就会按照状态码503给它做相应的处理 即 浏览器为了速度 会清缓存 所以直接s
  • 压力测试工具apache-ab讲解

    最近在做webservices 得到的数据是从德国那边的服务器 要将这些数据整合到现在网站中去 不知道性能如何 就做个压力测试 现在有些压力测试工具都是收费的 在开源的apache中自带个ab工具 就在C Apache2 2 bin ab
  • Leetcode初级算法——链表

    删除链表中的节点 请编写一个函数 使其可以删除某个链表中给定的 非末尾 节点 传入函数的唯一参数为 要被删除的节点 现有一个链表 head 4 5 1 9 它可以表示为 示例 输入 head 4 5 1 9 node 5 输出 4 1 9
  • pycharm使用anaconda

    一 Anaconda 1 简介 Anaconda就是可以方便的对的python包进行管理 并且可以通过可视化界面对虚拟环境进行管理 Anaconda包含大部分python库 且自带jupyter notebook等一系列应用 实在是学习py
  • Anaconda Prompt 如何切换工作路径

    Anaconda Prompt 默认路径 默认路径是你的用户名路径 切换路径 Anaconda Prompt在默认路径下 无法直接cd到其他盘 只能在根目录下进行切换盘符 在用户名路径下 输入cd 切换到根目录 返回根目录 使用cd 切换到
  • Office 之将 PPT 图片完美插入 Word

    将 PPT 图片完美插入 Word 原始文档 https www yuque com lart tools wdg4ww 前言 PPT 提供了简单易用的基本绘图支持 而 Word 则提供了专业的文档撰写和处理的支持 但这些工具并不是独立且互
  • 国内版ChatGPT插件来了,快速帮你阅读分析一本书,拆书神器

    好消息 我们都知道 自 OpenAI 开放插件后 其插件数量一直在迅速增加 据国外网友统计 最新的插件总数已经有 430 个 与 5 月 13 日刚开放时的 74 个相比 增长超过 400 而现在 文心一言网页版也正式添加了插件机制 普通用
  • 数据库操作不再困难,MyBatis动态Sql标签解析

    系列文章目录 MyBatis缓存原理 Mybatis的CachingExecutor与二级缓存 Mybatis plugin 的使用及原理 MyBatis四大组件Executor StatementHandler ParameterHand
  • 网页设计,前端大作业-个人主页网站

    个人主页网站 下载链接在文末 个人介绍 比较简单的一个网站适合初学者学习使用 点我下载
  • 简单有效,如何彻底卸载删除AlibabaProtect.exe

    简单有效 如何彻底卸载删除AlibabaProtect exe Process Hacker https www isharepc com 33781 html
  • Java常量池理解和经典总结

    Java常量池理解和经典总结 一 相关知识 1 什么是常量 第一种 是一个值 这个值本身 我们就叫做常量 整型常量 1024 实型常量 1 024 字符常量 g c w 字符串常量 gcw 逻辑常量 true false 这只是我们平时我们
  • JPEG数据格式分析

    添加链接描述 参考如让 感谢原创分享 JPEG数据分析 分析对象是一幅8x8的jpg图片 如下 图片已被放大并被虚线切分 这里写图片描述 用windows照片查看器查看图片详细信息 信息 参数 大小 667字节 尺寸 8x8 宽度 8像素
  • 【干货】Spring远程命令执行漏洞(CVE-2022-22965)原理分析和思考

    前言 上周网上爆出Spring框架存在RCE漏洞 野外流传了一小段时间后 Spring官方在3月31日正式发布了漏洞信息 漏洞编号为CVE 2022 22965 本文章对该漏洞进行了复现和分析 希望能够帮助到有相关有需要的人员进一步研究 1
  • 《热题100》字符串、双指针、贪心算法篇

    思路 对于输入的的字符串 只有三种可能 ipv4 ipv6 和neither ipv4 四位 十进制 无前导0 小于256 ipv6 八位 十六进制 无多余0 00情况不允许 不为空 class Solution def solve sel
  • 区块链扩容系列之Plasma MVP

    以太坊低TPS一直被诟病 最近V神提出一种将以太坊TPS提升到500的方案 一经发表就被BM调侃 可见以太坊低TPS目前确实严重阻碍了以太坊的发展 连V神都不得不经常发声 我们知道以太坊低TPS的一个关键原因是以太坊采用POW 因而将部分交
  • selenium爬虫检测之如何避免对isTrusted属性检测

    如何避免对isTrusted属性检测 检测原理 什么是isTrusted属性 在web api官方网站mozilla org有如下解释 Event接口的 isTrusted 属性是一个只读属性 它是一个布尔值 Boolean 当事件是由用户
  • java中访问数组元素的方法

    1 使用普通 for 循环 这是最常见的遍历数组的方法 使用传统的 for 循环语法 通过索引来访问数组中的每个元素 int arr 1 2 3 4 5 for int i 0 i lt arr length i int element a
  • 【线上死锁分析】由index_merge引发的死锁事件

    1 事情背景 背景由于更换新的短信供应商 同事之前可能对这块业务不太熟 原本是回执ID recordId 一个手机号一个 但是同事接的时候将这个批量发送接口只设置了一个recordId 导致了多个手机号共用了一个recordId 2 线上d
  • Linux系统发生故障时,所有文件会以只读方式挂载

    解决办法 执行mount o remount rw 让文件可以修改 原因 挂载磁盘时 没有写fstab文件 或者fstab文件里写的是磁盘名称而不是uuid
  • 解决问题:EXT4 filefield 文件上传在IE8上返回状态无效,弹出下载页面

    解决描述 EXT4 filefield 以form 文件上传 基于IE8浏览器 不管上传成功与否 返回状态无效 即success function fp o 方法无效 并弹出下载页面 原代码情况如下 1 EXT4前台视图层view view