1.编写上传页面
2.编写动作方法
import java.io.File; import java.io.IOException;
import javax.servlet.ServletContext;
import org.apache.commons.io.FileUtils; import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class upload1Action extends ActionSupport{ //表单上提供的字段 private String username; private File photo; //struts2在文件上传时提供的属性 private String photoFileName;//上传的文件名。上传字段名称+FileName 注意大小写 private String photoContentType;//上传文件的MIME类型。上传字段名称+ContentType 注意大小写 public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public File getPhoto() { return photo; }
public void setPhoto(File photo) { this.photo = photo; }
public String getPhotoFileName() { return photoFileName; }
public void setPhotoFileName(String photoFileName) { this.photoFileName = photoFileName; }
public String getPhotoContentType() { return photoContentType; }
public void setPhotoContentType(String photoContentType) { this.photoContentType = photoContentType; }
public String upload(){ //1.拿到ServletContext ServletContext application = ServletActionContext.getServletContext(); //2.调用realPath方法,获取根据一个虚拟目录得到的真实目录 String filePath = application.getRealPath("/WEB-INF/file"); //3.如果这个真实的目录不存在,需要创建 File file = new File(filePath); if(!file.exists()){ file.mkdirs(); } //4.把photo存过去 //拷贝:把photo的临时文件复制到指定的位置。注意:临时文件还在 //FileUtils.copyFile(photo, new File(file,photoFileName)); //剪切:把临时文件剪切指定的位置,并且给他重命名。 注意:临时文件没有了 photo.renameTo(new File(file,photoFileName)); return null; }
}
|
3.配置struts
实现上传文件
注意:上传的文件会在tomcat文件夹下 不是在你项目所在的地方 也就是服务器的位置
在上传的过程总会遇到文件的类型、文件大小等问题
所以我们得做约束
约束文件类型
在过滤器中添加类型
约束文件大小
如果大于50k就会报错