IE下⽂件上传,SCRIPT5:拒绝访问问题
最近遇到⼀个⽐较奇葩的问题,某些ie浏览器在页⾯中上传⽂件时,⽆法上传。查看控制台报错: SCRIPT5: 拒绝访问。jquery-
3.2.1.min.js, ⾏4 字符5725。并且我的最新版IE11⽆此问题,开发者控制台调为IE9,IE10都正常,⼀时便摸不着头脑,为什么会被限制呢?原因在哪?安全限制问题,难道事设置的问题?于是在⽹上进⾏检索,各种说法都有,最准确的应该是“IE浏览器对⾮主动触发
input[type=file]⽂件上传,进⾏安全限制,除⾮⽤户主动点击这个⽂件上传的input按钮。”,众所周知,input[type=file]这个⽂件上传按钮确实太low了,关键是不能⾃定义它的样式,这就很尴尬,绝⼤部分开发者都是采取隐藏此丑陋的按钮,使⽤另外⼀个⽐较⾼⼤上的按钮,然后间接触发隐藏的原⽣按钮。
但是如果你是随便⽤个input或者button来间接触发⽂件上传,IE由于安全限制,就会报以上拒绝访问错误。为了,解决这个问题,必须主动触发,采⽤原⽣的上传按钮,肯定是可以,但是是不可能⽤它的,长得那么丑,这辈⼦都不可能⽤了(⼿动滑稽),所以,要主动触发就要借助label的for属性,绑定到对应的input上即可。此时,只需要把label的for属性,指向⽂件上传input的id,然后再定义好label的样式,即可。⽰例代码:
<form id="fileUploadF" method="post" target="formUpFile" class="form form-group text-right" enctype="multipart/form-data">
<input type="file" id="fileUpIpt" class="fileUpIpt form-inline" accept="*/*" name="files" multiple="multiple" >
<input type="hidden" name="qblcId" value="${qblcId}">
文件访问被拒绝<label for="fileUpIpt" class="btn btn-sm btn-default upload-btn">
上传附件
</label>
</form>
⽬测这是最完美的解决⽅案了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论