js ajaxfileupload.js IE8 上传文件 拒绝访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js ajaxfileupload.js IE8 上传文件 拒绝访问相关的知识,希望对你有一定的参考价值。

ajaxfileupload上传 拒绝访问

使用ajaxfileupload.js上传文件
为了美观,把 type="file" 控件隐藏。用checkbox点击上传,点击“上传”按钮,click调用隐藏文件控件,再选择文件。
但是这个时候提交,IE返回“拒绝访问”信息

查了一遍,好像是ie为了安全控制,文件的必须鼠标点击过后,才能提交。

现在我不要把file透明放在checkbox上,有没一种方法是

///////上传文件
$('body').delegate('[name=isAccounts]', 'click', function() //点击checkbox
var input = $('<input>').attr('type', 'file').attr('id', 'id' + i).attr('name', 'fileToUpload').attr('size', 45).hide();//生成fileToUpload'
input .click(); 还是不行?

参考技术A 安全限制,必须要主动点击input控件才行,触发点击是不行的,隐藏的话不要用display:none;请使用opacity:0来隐藏(可以鼠标点击,visibility:hidden似乎也不行),IE8的话是filter:Alpha(opacity=0);然后让input一直追随鼠标移动,实现方式有很多,你找个合适的吧。总之上传需要主动点击input
-------------------------------
如果以上方法你不接受,那么你只能用flash来实现上传了本回答被提问者和网友采纳

利用ajaxfileupload.js异步上传文件

1、引入ajaxfileupload.js

2、html代码

<input type="file" id="enclosure" name="enclosure">
<button id="upClick" >上传</button>

注意这里的input控件的id和name必须一致;这样在后台利用springMVC接受文件的时候能对应起来;

3、JS代码

    <script type="text/javascript">
      $(document).ready(function(){
          $("#upClick").click(function(){
            $.ajaxFileUpload(
            {
               url:‘MyMail/addEnclosure‘,
               secureuri:false,
               fileElementId:‘enclosure‘,      //文件选择框的id和name要一样的名字
               dataType: ‘json‘,
               success: function (data, status){
           //这里的返回值利用JSON $(
‘#filePath‘).val(data[‘filePath‘]); $(‘#result‘).html(data[‘message‘]); },error: function (data, status, e){ $(‘#result‘).html(data[‘message‘]); } } ); }); }); </script>

4、springMVC的controller

 1     /***
 2      * 上传附件
 3      * @return
 4      */
 5     @RequestMapping("/addEnclosure")
 6     public @ResponseBody String uploadFile(@RequestParam("enclosure") CommonsMultipartFile file){ 8         JSONObject object = new JSONObject();
 9         object.put("filePath", file.getOriginalFilename());10      String returnJson = "";
11         try {
12             //使用ajaxfileupload.js异步上传文件,返回值乱码,重新编码处理
13             returnJson = new String(JSONObject.fromObject(object).toString().getBytes("utf-8"),"iso-8859-1");
14         } catch (UnsupportedEncodingException e) {
15             e.printStackTrace();
16         }
17         return returnJson;
18     }

 

以上是关于js ajaxfileupload.js IE8 上传文件 拒绝访问的主要内容,如果未能解决你的问题,请参考以下文章

利用ajaxfileupload.js异步上传文件

ajaxfileupload.js异步提交图片

PHP AjaxFileUpload.js文件上传

ajaxFileUpload上传带参数文件及JS验证文件大小

ajaxFileUpload.js插件支持多文件上传的方法

springmvc_ajax异步上传文件(基于ajaxfileupload.js)