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

举报
穆雄雄 发表于 2022/12/17 11:45:23 2022/12/17
【摘要】 ​ 在 两篇我们主要说的是文件的上传,既然有上传那就有下载,那么咱们看一下struts里面是怎么个下载法!1.写个文件下载的表单页面:   <a href="downLoad.action?fileName=1111.jpg">下载文件</a>很简单的我们写一行就行,需要注意的是,既然你要下载的是111.jpg文件,那么你的服务器里面肯定得有一个111.jpg在里面放着才能供你下载,要不然会...

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


这些文件上传和下载都是固定的套路,直接拿出来套上用就行!!!



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。