首先写JSP页面代码
<h2>文件上传</h2>
<form action="${pageContext.request.contextPath }/fileupload.action" method="post" enctype="multipart/form-data">
用户名:<input type="text" name="userName"> <br/>
文件:<input type="file" name="file1"> <br/>
<input type="submit" value="上传">
</form>
action代码
public class FileUploada extends ActionSupport {
// 上传的文件
private File file1;
// 上传的文件名
private String file1FileName;
// 上传的文件类型
private String file1ContentType;
public void setFile1(File file1) {
this.file1 = file1;
}
public void setFile1FileName(String file1FileName) {
this.file1FileName = file1FileName;
}
public void setFileContentType(String fileContentType) {
this.file1ContentType = file1ContentType;
}
@Override
public String execute() throws Exception {
String path = ServletActionContext.getServletContext().getRealPath(
"/upload");
System.out.println(this.file1FileName);
File destFile = new File(path,file1FileName);
FileUtils.copyFile(file1, destFile);
return SUCCESS;
}
}
struts配置文件xml
<package name="upload_" extends="struts-default">
<!-- 注意: action 的名称不能用关键字"fileUpload" -->
<action name="fileUploadAction" class="cn.itcast.e_fileupload.FileUpload">
<!-- 限制运行上传的文件的类型 -->
<interceptor-ref name="defaultStack">
<!-- 限制运行的文件的扩展名 -->
<param name="fileUpload.allowedExtensions">txt,jpg,jar</param>
<!-- 限制运行的类型 【与上面同时使用,取交集】
<param name="fileUpload.allowedTypes">text/plain</param>
-->
</interceptor-ref>
<result name="success">/e/success.jsp</result>
<!-- 配置错误视图 -->
<result name="input">/e/error.jsp</result>
</action>