上传文件时用form.submit提交的时候在低版本的IE中报拒绝访问的错误

上传文件的时候,在IE7下总是传不了,但FireFox,IE11和Chrome下则可以上传。发现是form.submit();时出错了(“拒绝访问”)。

html代码为:

               <label  onclick="Upload()"> 上传附件</label>
               <form id="uploadForm"  enctype="multipart/form-data" target="frameFile"  method="post">
                 <input type="file" id="a" name="a" onchange="fileUpload()" style="display:none"    />
               </form>

js代码为

  function Upload()
    {
        document.getElementById("a").click();
    }
    function fileUpload()
    {
        var form = document.getElementById(‘uploadForm‘);
        form.action="XXX.do?";
        form.submit();

    }

原来是因为IE下 file表单控件,不能用js控制打开文件选择器(就是只能点击file本身,不能通过js调用file.click方式),否则会报 “拒绝访问”。所以,通过将file设置为透明(position:absolute;top:0px;right:0px;cursor:pointer; opacity:0;filter:alpha(opacity:0);z-index:999;),用div或者其他的标签盖住file,这样点击显示的div时同样也真实的点击了file。

代码做一下调整,这个问题就能解决了

             <label for="a"> 上传附件    </label>
               <form id="uploadForm"  enctype="multipart/form-data" target="frameFile"  method="post">
                 <input type="file" id="a" name="a" onchange="fileUpload()" style="position:absolute;top:0px;right:0px;cursor:pointer; opacity:0;filter:alpha(opacity:0);z-index:999;"/>
              </form>
              
function fileUpload()
    {
        var form = document.getElementById(‘uploadForm‘);
        form.action="XXX.do?";
        form.submit();
    }

原文地址:https://www.cnblogs.com/mingqi-420/p/10931984.html

时间: 2024-11-04 06:09:44

上传文件时用form.submit提交的时候在低版本的IE中报拒绝访问的错误的相关文章

关于form 上传文件时的小问题

平时的form一般写成这样: <form action=" " method="" id="" name=""> 当需要上传文件时 必须要加一个属性 即: <form ......   enctype="mulitpart/form-data"> 表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码.默认情况,这个编码格

PHP上传文件时无法上传成功,$_FILES[&#39;screenshot&#39;][&#39;tmp_name&#39;]为空

最近在学习<HeadFirst PHP & MySQL>一书的第5章"使用存储在文件中的数据",做一个文件上传的应用时,出现了错误,就是文件无法成功上传.这个问题困扰了我很久,不过还好最后终于解决了.原因是我上传的图片文件大小超过了HTML 表单中 MAX_FILE_SIZE 选项指定的值32768Bytes即32KB导致无法上传成功. 我使用了XAMPP(Apache + MySQL + PHP + Perl)集成开发包和Zend Studio 10.6作为PHP

【原创】AJAX上传文件,formdata表单提交问题

今天遇到一个特别神奇的问题,AJAX上传文件,formdata表单提交问题,后台显示无法获取上传文件. 排查许久发现是formdata.append();时,要先添加file,而后添加其他参数.方可正常工作. 可是却不知到底是和原因.去了火狐开发者社区也未能找到答案. 还望知道的大神赐教一二.

用PHP上传文件时$_FILES中error返回值详解

用PHP上传文件时,我们会用程序去监听浏览器发送过来的文件信息,首先会通 过$_FILES[fieldName]['error']的不同数值来判断此欲上传的文件状态是否正常.$_FILES[fieldName] ['error']==0代表一切正常,其它数值的具体含义请参考下面一段程序的注释部分,如有翻译不到之处还望指正! switch($_FILES[$field]['error']) { case 1:            // 文件大小超出了服务器的空间大小            $th

如何解决上传文件时文件内容相同

现在有这样一个需求:要求在上传文件时,凡是上传的文件,只要内容相同就只在服务器保存一份. 如何比较文件内容?如果当时思维受限,很难想到来比较文件内容的办法. 解决办法: 文件上传,肯定少不了用流来读文件,文件内容相同的根源就是:流读出来的字节码相同.这就想到了解决的办法,可是问题又来了.怎么比较字节码?想想那么长的字节码,如果用字符串的equals方法来比较,这不是一个好的解决办法.经过一番思考,我决定把流读出来的字节码进行MD5加密,用加密后的字符串来当作文件的文件名,然后在进行文件的上传(文

上传文件时自动生成文件夹

#region 返回当前日期的文件夹 /// <summary>        ///上传文件时自动生成文件夹        /// </summary>        /// <param name="path">要保存的路径</param>        /// <returns>返回生成的文件夹</returns>        public static string CreateDis(string pa

在使用 AjaxFileUpload 上传文件时,在项目发布到 iis 后,图片不能预览

在使用 AjaxFileUpload  上传文件时,图片已经上传成功了,在站点没有发布时,可以预览,可是在项目发布到 iis 后,图片就不能预览,在网上找了很多的方案也没解决,最后的解决方案如下: 1.开始运行 regedit 打开注册表,先备份注册表 2.找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters 3.在 编辑 菜单上指向 新建 ,然后单击 DWORD 值 . 4.键入 EnableAggres

关于上传文件时,提示控制台信息存取失败的解决方法

 如下图所示,用户在上传文件时,提示控制台信息存储失败,无法继续操作. 1.原因分析: ①上传服务异常,可能是数据中心的传服务出现异常 ②查看相关日志,可能的原因,一般是读取加密狗失败,或者服务器IIS未允许ISAPI和CGI限制. 2.根据上述分析,解决方法如下: ①数据中心快速检测:浏览器输入http://IP/viewgood_dcs ②上传服务快速检测:浏览器输入http://IP/viewgood_cdn/1.cdn 总结,在产品正常的使用过程中,难免会遇到各种大大小小的问题,尤其

ajax上传文件 基于jquery form表单上传文件

<script src="/static/js/jquery.js"></script><script> $("#reg-btn").click(function () { // 1. 取到用户填写的数据 var form_data_obj = new FormData(); form_data_obj.append('username',$('#id_username').val()); form_data_obj.append