Java 文件下载原理 + Struts2文件下载原理 详解:~~Myself

###struts2 完成文件下载:
1.首先明确基础知识:InputStream与FileInputStream等都是对内存而言,
那么文件输入流一定是向内存输入流,这对文件下载是有用的。
本质理解下载文件过程:
第一步:就是要下载的文件放到或叫关联到输入流中: 把文件干到内存
new FileInputStream("d:\\test.txt")
第二步:把输入流转换成输出流,即data从内存干到文件当中去,由此完成了文件下载功能。
YE的IP抓包下载Excel原理 就是利用这种输出流的方式:
InputStream in=new FileInputStream(temp);
outStream(in);
temp.delete();
第三步:再配合以下对浏览器的控制:
                        getResponse().setContentType("application/vnd.ms-excel; charset=GBK");
String fileName=buildTitle()+".xls";
getResponse().setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("GB2312"),"ISO-8859-1"));

这就是文件下载的整个原理。

2.struts2下载文件的套路:  框架确实简单-->依然用xml的配置方式,代替了繁琐的硬编码方式。
  第一步:在action当中加一个:

public InputStream getInputStream() throws Exception {

return new FileInputStream("d:\\test.txt");

}
第二步:struts.xml中添加配置:
<action name="TopExportTxt" class="cn.cstnet.trafficView.action.flow.CatchIPTopAction" >
    <result name="success" type="stream">   
  
                      <param name="contentType">text/plain</param>   
  
                      <param name="inputName">inputStream</param>   
  
                      <param name="contentDisposition">attachment;filename="struts2down.txt"</param>   
  
                      <param name="bufferSize">4096</param>   
                  </result>  
</action>

以上两步就完全搞定,非常犀利,具体用时再修改下达到业务需求即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值