struts2上传下载
2016-07-28 17:53
429 查看
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Struts03</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
</web-app>
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Struts03</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
</web-app>
struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="devMode" value="true"></constant> <!-- 上传文件的大小 --> <constant name="struts.multipart.maxSize" value="20971520"/> <package name="struts" extends="struts-default" namespace="/"> <global-results> <result name="error" type="redirect">/error.jsp</result> </global-results> <action name="upload" class="com.hellojava.web.action.UploadAction"> <result name="success" type="redirectAction"> <param name="actionName">loaduploadfile</param> <param name="namespace">/</param> </result> </action> <action name="loaduploadfile" class="com.hellojava.web.action.LoadUploadFileAction"> <result name="success">/index.jsp</result> </action> <action name="download" class="com.hellojava.web.action.DownLoadAction"> <result name="success" type="stream"> <!-- 当前文件流的内容类型 --> <param name="contentType">application/octet-stream</param> <!-- 流的方法(那个方法提供这个流) --> <param name="inputName">inputStream</param> <!-- 下载的文件名称 --> <param name="contentDisposition">attachment;filename=${fileName}</param> <!-- 下载缓冲区的大小 --> <param name="bufferSize">20971520</param> </result> </action> </package> </struts>upload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="upload.action" method="post" enctype="multipart/form-data"> 文件:<input type="file" name="upload"/><br/> <input type="submit" value="提交"/> </form> </body> </html>index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <c:forEach items="${sessionScope.fileNames}" var="fileName"> <a href="download.action?fileName=${fileName}">${fileName}</a> </c:forEach> </body> </html>uploadAction
package com.hellojava.web.action; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class UploadAction extends ActionSupport { //用于封装前台表单中上传的文件 private File upload; //用于封装上传文件文件的名称(控制器) private String uploadFileName; //用于封装上传文件的类型(控制器) private String uploadContentType; public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } public String getUploadFileName() { return uploadFileName; } public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName; } public String getUploadContentType() { return uploadContentType; } public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType; } @Override public String execute() throws Exception { String path=ServletActionContext.getServletContext().getRealPath("/upload"); File root=new File(path); if(!root.exists()){ root.mkdirs(); } InputStream input=new FileI 9a87 nputStream(this.getUpload()); BufferedInputStream bufferedInputStream=new BufferedInputStream(input); byte[] bs=new byte[input.available()]; bufferedInputStream.read(bs, 0, bs.length); bufferedInputStream.close(); OutputStream out=new FileOutputStream(path+"/"+this.getUploadFileName()); BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(out); bufferedOutputStream.write(bs, 0, bs.length); bufferedOutputStream.flush(); bufferedOutputStream.close(); return this.SUCCESS; } }DownLoadAction
package com.hellojava.web.action; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class DownLoadAction extends ActionSupport { private String fileName; public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public InputStream getInputStream(){ InputStream input=ServletActionContext.getServletContext().getResourceAsStream("/upload/"+this.getFileName()); return input; } @Override public String execute() throws Exception { return this.SUCCESS; } }loadUploadFileAction
package com.hellojava.web.action; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class DownLoadAction extends ActionSupport { private String fileName; public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public InputStream getInputStream(){ InputStream input=ServletActionContext.getServletContext().getResourceAsStream("/upload/"+this.getFileName()); return input; } @Override public String execute() throws Exception { return this.SUCCESS; } }
相关文章推荐
- java为什么定义的变量在main中不能用?
- Java编程:获取键盘输入的三种方法
- java-基础-util
- Java中return和finally的执行顺序
- 堆排序的Java代码实现
- 【Java学习】java线程-多线程理解
- 解决java下载csv中文乱码(加BOM头)
- Spring与MyBatis整合需要哪些包
- 各个版本eclipse官方下载地址
- Spring注解@Component、@Repository、@Service、@Controller区别
- spring笔记1
- 10、Java并发编程:并发容器之ConcurrentHashMap
- Struts2框架运行机制(拦截器,struts标签)
- javaweb——图片上传案例
- Eclipse里面的一些常规设置
- java项目转换依赖等问题
- java-设计模式-观察者模式
- JavaWeb中文件下载
- Java源码-简单计算器界面的AWT实现与Swing实现之比较
- Java 基础 - 泛型