本文共 3058 字,大约阅读时间需要 10 分钟。
Struts文件上传和下载配置详细说明
一、文件上传配置
1.1 JSP页面配置
在JSP页面中,需配置文件上传表单,确保使用正确的表单类型和属性设置。以下是典型示例:
1.2 Action类配置
文件上传Action类需继承ActionSupport,确保文件上传拦截器正常工作。以下是示例代码:
public class FileUpLoadAction extends ActionSupport { private File image2; private String image2FileName; private List listNames; public void setImage2(File file) { this.image2 = file; } public InputStream getInputStream() { return ServletActionContext.getServletContext().getResourceAsStream("/images/" + image2FileName); } public String execute() throws Exception { String realpath = ServletActionContext.getServletContext().getRealPath("/images"); if (image2 != null) { File savefile = new File(realpath + "/" + image2FileName); FileUtils.copyFile(image2, savefile); } listNames = findFileNames(realpath); return "success"; } private List findFileNames(String path) { List listNames = new ArrayList<>(); File file = new File(path); File[] files = file.listFiles(); for (File f : files) { if (f.isFile()) { listNames.add(f.getName()); } } return listNames; }} 1.3 Struts配置文件
在struts.xml中,配置文件上传拦截器和动作:
index.jsp error.jsp image/bmp,image/png,image/gif 102400 application/octet-stream inputStream attachment;fileName=${fileName} 4096
1.4 错误页面配置
错误页面用于显示文件上传失败时的错误信息:
图片上传失败
返回图片上传页
二、文件下载配置
2.1 Action类下载实现
下载Action类需提供文件名,返回输入流:
public class DownloadAction { private String fileName; public void setFileName(String fileName) { this.fileName = fileName; } public InputStream getInputStream() { return ServletActionContext.getServletContext().getResourceAsStream("/images/" + fileName); } public String execute() { System.out.println("getFileName()=" + getFileName()); return "success"; }} 2.2 Struts配置文件
在struts.xml中配置下载动作:
application/octet-stream inputStream attachment;fileName=${fileName} 4096
三、web.xml配置
确保Struts过滤器正确配置:
struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /.action struts2 /.jsp index.jsp
以上配置详细说明了Struts文件上传和下载的实现方法,包括JSP页面、Action类、Struts配置文件和web.xml配置等内容。
转载地址:http://rgxyz.baihongyu.com/