一.ajaxFileUpload 实现异步上传文件利用到了ajaxFileUpload.js这个文件,这是别人开发的一个jquery的插件,可以实现文件的上传并能够和struts2框架和好的融合在一起。但是网上的提供的一些ajaxFileUpload.js插件存在一些问题,不能够实现多次点击上传文件,要想再次上传必须重新刷新页面。在网上找了好久才找到真正的解决方案,有些网友给出的解决方案并没有真正的解决问题,不知到什么原因。我的修改:
原文件:
var oldElement = $(‘#‘ + fileElementId);
              var newElement = $(oldElement).clone();
		     $(oldElement).attr(‘id‘, fileId);
		     $(oldElement).before(newElement);
		     $(oldElement).appendTo(form);
作如下修改:
      var oldElement = $(‘#‘ + fileElementId);
		      var newElement = $(oldElement).clone();
		      var newElement = $(oldElement).clone(true);
		      $(oldElement).attr(‘id‘, fileId);
		      $(oldElement).before(newElement);
		      $(oldElement).appendTo(form);
即添加这一句话:var newElement = $(oldElement).clone(true);
关于.clone()和.clone(true)的区别,这个链接给出了解释:http://blog.baiwand.com/?post=27
下面是关于ajaxFileUpload的具体使用:
options参数说明:
1、url            上传处理程序地址。  
2,fileElementId       需要上传的文件域的ID,即<input type="file">的ID。
3,secureuri        是否启用安全提交,默认为false。 
4,dataType        服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
5,success        提交成功后自动执行的处理函数,参数data就是服务器返回的数据。
6,error          提交失败自动执行的处理函数。
7,data	          自定义参数。这个东西比较有用,当有数据是与上传的图片相关的时候,这个东西就要用到了。
8, type	           当要提交自定义参数时,这个参数要设置成post
具体代码:
$.ajaxFileUpload({ type:"post", secureuri:false, url:‘uploadFile.action‘, fileElementId:‘fileupload‘, success:function(data,status){ }, error:function(data,status,e){ alert("上传文件失败,请重新上传或刷新页面在上传!"); }, });
二.关于input中type="file"的自动提交上传的文件的解决方法;即监听input的change()时间:
$("#fileupload").change(function(){});
struts2 jquery ajaxFileUpload 异步上传文件
原文:http://www.cnblogs.com/canjianerguo/p/5483502.html