加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ajaxfileupload 在IE9下用按钮触发file上传控件,请求无法触发的

发布时间:2020-12-16 03:16:15 所属栏目:百科 来源:网络整理
导读:很多系统为了美观,都会在网页中用一个隐藏的按钮触发file上传控件,一般正常的在Chrome和Firefox下没有问题,但是切换到IE9和IE10下请求无法到达后台,这是因为IE9和IE10为了安全考虑,阻止了不是直接点击file的上传。因为这个问题,折腾了一天,参考网上的

很多系统为了美观,都会在网页中用一个隐藏的按钮触发file上传控件,一般正常的在Chrome和Firefox下没有问题,但是切换到IE9和IE10下请求无法到达后台,这是因为IE9和IE10为了安全考虑,阻止了不是直接点击file的上传。因为这个问题,折腾了一天,参考网上的案例,结合自己的实际情况,终于找到一个比较靠谱的解决方案。

用一个label标签,label的for属性指向file文本框

<input type="file" id="uploadfile" name="file" style="display:none;" onclick="upload();" />

<label for="uploadfile"></label>

label的样式可以自己调整

每次上传时,点击label标签,就可以直接触发file控件。

我这里因为用的是jquery.ajaxfileupload.js的上传插件,因此在IE下还有一个问题,就是清空file文件框的值时,总是无法清空,导致二次上传时,无法触发文件框的change事件。

因此用了另外一个清空文件框内容的方法

varclearFileInput =function(name) {

varf = $("input[name='"+name+"']:file");

f.val("");

varcf = f.clone();

f.remove();

cf.appendTo("body");

};


还有一个是在IE9下如果用springmvc的框架,在后台直接输出json的话,前台会直接去下载json文件,解决办法是用HttpServletResponse对象向页面写入数据,并设置数据类型为text/html。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读