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(); 还是不行?
-------------------------------
如果以上方法你不接受,那么你只能用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 上传文件 拒绝访问的主要内容,如果未能解决你的问题,请参考以下文章