jsp中实现文件下载的最简单的方式是在网页上做超级链接,如:<a href="music/abc.mp3">点击下载</a>。但是这样服务器上的目录资源会直接暴露给最终用户,会给网站带来一些不 安全的因素。因此可以采用其它方式实现下载,可以采用:1、RequestDispatcher的方式进行;2、采用文件流输出的方式下载。
1、采用RequestDispatcher的方式进行
jsp页面中添加如下代码:
<%
response.setContentType("application/x-download");//设置为下载application/x-download
String filedownload = "/要下载的文件名";//即将下载的文件的相对路径
String filedisplay = "最终要显示给用户的保存文件名";//下载文件时显示的文件保存名称
filenamedisplay = URLEncoder.encode(filedisplay,"UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);
try
{
RequestDispatcher dis = application.getRequestDispatcher(filedownload);
if(dis!= null)
{
dis.forward(request,response);
}
response.flushBuffer();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
}
%>
2、采用文件流输出的方式下载
<%@page language="java" contentType="application/x-msdownload" pageEncoding="gb2312"%><%
//关于文件下载时采用文件流输出的方式处理:
//加上response.reset(),并且所有的%>后面不要换行,包括最后一个;
response.reset();//可以加也可以不加
response.setContentType("application/x-download");
String filedownload = "想办法找到要提供下载的文件的物理路径+文件名";
String filedisplay = "给用户提供的下载文件名";
filedisplay = URLEncoder.encode(filedisplay,"UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);
OutputStream outp = null;
FileInputStream in = null;
try
{
outp = response.getOutputStream();
in = new FileInputStream(filenamedownload);
byte[] b = new byte[1024];
int i = 0;
while((i = in.read(b)) > 0)
{
outp.write(b, 0, i);
}
outp.flush();
}
catch(Exception e)
{
System.out.println("Error!");
e.printStackTrace();
}
finally
{
if(in != null)
{
in.close();
in = null;
}
if(outp != null)
{
outp.close();
outp = null;
}
}
%>
- 大小: 264.4 KB
分享到:
相关推荐
豆丁网免费下载器(冰点)无需登录也无需积分,只需要将需要下载的文档的网页地址复制在软件的录入框中就可以自由下载,并最终生成pdf文件。对部分pdf文件能够提取文字生成txt。 豆丁网免费下载器还支持自由下载百度、...
用ajax实现的java文件打包下载。可以输入扩展名选择文件下载。
在线下载的方法(付费一2般不可能全部下载!
由于在学习numpy数据分析的时候没有csv类型文件,又懒得自己一个个敲字,便想来csdn里随便下载一个。然而......居然要钱啊!!!!!!!我没钱,所以自己写了个,我不要你们的钱,麻烦各位拿资源的时候吱一声,这是...
visual studio 2010的帮助文档很难下载,一方面文件很多很大,全部文档超过1GB,使用微软自带的 或者辅助工具,由于没有发挥多线程和断点续传的特点,下载速度很慢,容易失败。 另一方面迅雷等下载工具,可以实现...
ASP.NET中提供可以在页面下载存储在后台的文件,很好用哦
用Visuall C++实现远程文件下载,这只是word文档。。。
将豆丁文档转化为pdf 免除豆丁收费要求
utf-8文档下载,有需要的可以下载一下,
豆丁网文件一般只能看,不能下,本工具可把豆丁网文件下载到本地,并保存成pdf文件
库函数stdio.h文件下载~………………
1、在本站下载解压,得到小叶文库下载器软件包; 2、首先前往文库网站找到需要下载的文库 3、将其文库地址复制粘贴到软件中,进行解析下载;...4、之后下载好的文件可在本自录下的Download文件夹进行查看。
redis.conf Redis配置文件 下载 redis.conf 配置详解 Redis配置文件redis.conf 详解1.基本配置内存单位的表示# 1k => 1000 bytes# ...Redis 的详细介绍Redis 的下载地址
Java实现文件下载功能,以WORD文档方式展现给用户看。
豆丁网文档下载器 第一次运行请先运行bat文件,当文件处理时请保证您的当前磁盘有足够的空间
python
Visual Studio 2012 官方离线文档 下载地址
sharepoint 2010 实现文档下载次数
文件下载的jsf程序...................(用poi导出excel文档)
[download id="1,2,3" category="4,5,6"] 为显示多个下载文件为1,2,3的文档,category=”4,5,6″为对应的分类ID。 b.在页面中添加下载:当你添加页面时在内容框插入:[page_download]或[page_download category=...