html:
<form name="deleteUserForm" method="post" enctype="multipart/form-data">
<input name="uploadFile" type="file"/>
</form>
<button id="upload">上传</button>
$().ready(function(){
$("#upload")
.button()
.click(function(){
deleteUserForm.action = "uploadFile.action";
deleteUserForm.submit();
}
);
});
Sturts.xml:
<action name="uploadFile" class="userAction" method="uploadFile">
<result name="success" type="redirect">userList.action</result>
</action>
UserAction:
上传文件的file name="uploadFile",那么文件名一定为 uploadFileFileName,也就是后面加上"FileName", 他代表的是上传文件的名字
private File uploadFile;
private String uploadFileFileName;
//get set
public String uploadFile(){
String directory = "/upload";
String targetDirectory = ServletActionContext.getServletContext().getRealPath(directory);
//生成上传的文件对象
File target = new File(targetDirectory,uploadFileFileName);
//如果文件已经存在,则删除原有文件
if(target.exists()){
target.delete();
}
//复制file对象,实现上传
try {
FileUtils.copyFile(uploadFile, target);
} catch (IOException e) {
e.printStackTrace();
}
return "SUCCESS";
}
在测试过程中,出现如下info信息:
Unable to find 'struts.multipart.saveDir' property setting. Defaulting to javax.servlet.context.tempdir
两个解决办法:
1.struts.xml配置文件中增加如下:
<constant name="struts.multipart.saveDir" value="/tmp"/>
设置临时文件上传路径。
2.在struts.properties文件加入如下代码:
struts.multipart.saveDir = /tmp