Struts文件上传与下载详解_文件的下载

在 两篇我们主要说的是文件的上传,既然有上传那就有下载,那么咱们看一下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>

这些文件上传和下载都是固定的套路,直接拿出来套上用就行!!!
原文地址:https://www.cnblogs.com/a1111/p/12816303.html