在之前博客 Java Web 通过JSP上传文件实例,使用了html中内置的file标签<input type="file" name="file" value="浏览文件">
进行文件上传。在Struts的内置标签库中,同样也提供了file标签,用户文件上传,称为文件选择域。使用Struts标签库中的file标签,在后端框架会自动进行文件接收,底层细节不用我们关注,这也正是框架的主要作用。
使用Struts标签库中的file文件上传时,表单必须是post方法,并且enctype
类型必须为multipart/form-data
。并且还需要在前端界面导入struts标签库,在jar包导入
commons-fileupload.jar
以及commons-io.jar
包。
1、文件上传实例
①、项目目录结构
②、UploadFileAction类
package cn.hestyle.web.action;
import com.opensymphony.xwork2.ActionSupport;
import java.io.File;
public class UploadFileAction extends ActionSupport {
//struts会自动将前端发送的文件转化为一个对象(临时对象)
private File photo;
//ContentType、FileName必须与文件名一一对应
private String photoContentType;
private String photoFileName;
//并且需要提供三个属性的setter方法
public File getPhoto() {
return photo;
}
public void setPhoto(File photo) {
this.photo = photo;
}
public String getPhotoContentType() {
return photoContentType;
}
public void setPhotoContentType(String photoContentType) {
this.photoContentType = photoContentType;
}
public String getPhotoFileName() {
return photoFileName;
}
public void setPhotoFileName(String photoFileName) {
this.photoFileName = photoFileName;
}
public String upload(){
System.out.println("文件类型:" + photoContentType);
System.out.println("文件名称:" + photoFileName);
return "success";
}
}
如果未添加photoContentType
、photoFileName
方法,控制台会报错。
③、前端jsp界面
uploadFile.jsp
文件
<%--
Created by IntelliJ IDEA.
User