在 两篇我们主要说的是文件的上传,既然有上传那就有下载,那么咱们看一下struts里面是怎么个下载法!
1.写个文件下载的表单页面:
<a href="downLoad.action?fileName=1111.jpg">下载文件</a>
很简单的我们写一行就行,需要注意的是,既然你要下载的是111.jpg文件,那么你的服务器里面肯定得有一个111.jpg在里面放着才能供你下载,要不然会报错的!!!
接着我们写一下DownLoadAction里面的方法:
package org.web;import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class DownLoadAction extends ActionSupport {private String inputPath;private String fileName;private String contentType;private InputStream inputStream;public String excute(){return SUCCESS;}public String getInputPath() {return inputPath;}public void setInputPath(String inputPath) {this.inputPath = inputPath;}public String getFileName() {return fileName;}public void setFileName(String fileName) {this.fileName = fileName;}public String getContentType() {return contentType;}public void setContentType(String contentType) {this.contentType = contentType;}public InputStream getInputStream() throws FileNotFoundException {String path=ServletActionContext.getServletContext().getRealPath(inputPath);return new BufferedInputStream(new FileInputStream(path+"/"+fileName));}public void setInputStream(InputStream inputStream) {this.inputStream = inputStream;}}
这个 DownLoadAction里面很简单,重要的是struts.xml配置文件里面的东西,那么请大家看:
<!-- 文件下载 --><action name="downLoad" class="org.web.DownLoadAction"><param name="inputPath">/upload</param><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">4096</param></result></action>
这些文件上传和下载都是固定的套路,直接拿出来套上用就行!!!