先提句题外话,ajax是无法实现文件上传的,ajax与后台的交互都是通过字符串来实现的,而且js是不允许操纵前台文件的。
我这这里用的方法是通过iframe来实现的。我想到这个也是看了一篇来之javaEye的博客,作者是“xiaofeizm55333 ”,原文地址是,http://www.javaeye.com/topic/81120.在这里再次感谢他给了我思路。
这里贴出我的部分代码:
jsp:
<script>
function upSalary(){
document.form2.action="salary-uploadSalary.whbs"
document.form2.submit();
locking();//这里是调用一个屏蔽界面的一个效果,与主题无关
}
</script>
<form id="form2" name="form2" method="post" action="" enctype="multipart/form-data" target="hidden_frame">
<s:file id="up" name ="upload" theme="simple" cssStyle="width:370px" οnkeydοwn= "event.returnValue=false;" />
[<a href="#" οnclick="upSalary();">导入薪资</a>]
<iframe name="hidden_frame" id="hidden_frame" style="display:none"></iframe>
</form>
java 代码
public String uploadSalary(){
/**
这里写后台的上传文件的代码
**/
return "uploadSalary";
}
然后返回一个jsp,在这个jsp里面在实现你需要的效果,很简单,有兴趣的可以试一下