struts2的文件下载

struts2的文件下载是真实的下载,是下载到内存中的

jsp页面:

<p>文件下载</p>
 <s:iterator value="#request.files" var="fs">
 <!-- fname:是文件或者图片的路径-->
  <a href="loadAction.action?fname=<s:property value='#fs.getName()'/>"><s:property value="#fs.getName()"/></a><br/>
 </s:iterator>

文件下载的方法中:

package com.ystruts.action;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoadAction extends ActionSupport{	
	//名字要和页面上的name一致
	private String fname;
	//这个名字是自定义的
	private InputStream inputStream;
	//方法
	  public InputStream getDownLoad() {
	  //获取request对象
	   HttpServletRequest request=ServletActionContext.getRequest();
	   @SuppressWarnings("deprecation")
	   //通过request对象获取到绝对路径
	   String path=request.getRealPath("/images");
	   BufferedInputStream bis=null;
	   try {
	   //通过文件名称和文件路径创建字节输入流
	    bis=new BufferedInputStream(new FileInputStream(path+"/"+fileName));
	   } catch (FileNotFoundException e) {
	   	    e.printStackTrace();
	   }
	   //返回字节输入流
	   return bis;
	   
	  }
	}

配置文件中:

<action name="loadAction" class="com.ystruts.action.LoadAction" >
	<!-- 指明type是文件下载-->
       <result type="stream">
        <param name="inputName">downLoad</param><!-- 方法名 -->
        <!-- 下载文件的类型-->
        <param name="contentType">application/octet-stream</param>
        <!-- 下载文件的打开方式 如果attachment;不写那不会下载图片,只会显示图片-->
        <param name="contentDisposition">attachment;fname=${fname}</param><!-- fname属性-->
       </result>
 </action>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值