作者:前所未闻啊_549 | 来源:互联网 | 2023-09-15 09:13
链接:https://www.cnblogs.com/wkrbky/p/5904787.html
Struts2文件上传(基于表单的文件上传)
•Commons-FileUpload组件
–Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目
•Commons-FileUpload组件特点
–使用简单:可以方便地嵌入到JSP文件中,编写少量代码即可完成文件的上传功能
–能够全程控制上传内容
–能够对上传文件的大小、类型进行控制
•需要下载Common-FileUplaod框架地址(当然MyEclipce中Struts2支持里自带有这两个包):
–http://jakarta.apache.org/commons/fileupload/
–下载commons-fileupload-1.2-bin.zip文件
–解压后得到commons-fileupload-1.2.jar
–http://jakarta.apache.org/commons/io/
–下载commons-io-1.3.2-bin.zip文件
–解压后得到commons-io-1.3.2.jar
基于表单的文件上传
•注意:上面是基于表单的上传,在form标签中有一个必须的属性值设置:enctype.
•如果要做文件上传功能必须将enctype值设为multipart/form-data.
•此外,文件上传还需要二个JAR文件支持:
文件上传页面upload.jsp(二选一表单即可)
<%&#64; taglib uri&#61;"/struts-tags" prefix&#61;“s”%>
文件&#xff1a;或者&#xff08;两个表单二选一即可&#xff09;
Struts2.xml
500000000text/plain,application/vnd.ms-powerpoint.txt,.ppt/success.jsp/error.jsp
附加&#xff1a;contentType类型设置
上传Action类UploadAction-简单的保存文件方式
package com.struts;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport {
private File uploadImage; //得到上传的文件
private String uploadImageContentType; //得到文件的类型
private String uploadImageFileName; //得到文件的名称public String execute(){System.out.println("fileName:"&#43;this.getUploadImageFileName());System.out.println("contentType:"&#43;this.getUploadImageContentType());System.out.println("File:"&#43;this.getUploadImage());//获取要保存文件夹的物理路径(绝对路径)String realPath&#61;ServletActionContext.getServletContext().getRealPath("/upload");File file &#61; new File(realPath);//测试此抽象路径名表示的文件或目录是否存在。若不存在&#xff0c;创建此抽象路径名指定的目录&#xff0c;包括所有必需但不存在的父目录。if(!file.exists())file.mkdirs();try {//保存文件FileUtils.copyFile(uploadImage, new File(file,uploadImageFileName));} catch (IOException e) {e.printStackTrace();}return SUCCESS;
}public File getUploadImage() {return uploadImage;
}public void setUploadImage(File uploadImage) {this.uploadImage &#61; uploadImage;
}public String getUploadImageContentType() {return uploadImageContentType;
}public void setUploadImageContentType(String uploadImageContentType) {this.uploadImageContentType &#61; uploadImageContentType;
}public String getUploadImageFileName() {return uploadImageFileName;
}public void setUploadImageFileName(String uploadImageFileName) {this.uploadImageFileName &#61; uploadImageFileName;
}
}
上传成功页面&#xff1a;
成功页面.
上传失败页面&#xff1a;
<%&#64; taglib uri&#61;"/struts-tags" prefix&#61;“s”%>
跳转错误页面。。