jsp中文件下载的实现
来源:互联网 发布:ubuntu vsftpd 开启 编辑:程序博客网 时间:2024/06/03 00:09
jsp中文件下载的实现
jameslai 2006-12-22
jameslai 2006-12-22
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;
}
}
%>
- jsp中文件下载的实现
- jsp中文件下载的实现
- jsp中文件下载的实现
- jsp中文件下载的实现
- jsp中文件下载的实现
- jsp中文件下载的实现
- jsp中文件下载的实现
- jsp中文件下载的实现
- JSP中文件下载(转贴)
- JSP中文件的上传于下载示例
- JSP中文件的上传与下载示例
- Struts2 中文件的下载
- jsp实现中文文件名下载
- jsp+servlet 实现文件夹中文件共享
- Django网站中文件下载的实现和网页部分打印的实现。
- ASP.NET中文件的下载
- 多线程分块下载中文件的组织形式
- ROR中文件的上传与下载
- 一些Select检索高级用法
- ppp
- 《设计模式精解》学习笔记(六)—— 面向对象的新视角
- 《设计模式精解》学习笔记(七)------Bridge(桥)模式
- gmail在firefox中经常不能用
- jsp中文件下载的实现
- 《设计模式精解》学习笔记(八)------Abstract Factory(抽象工厂)模式
- 《设计模式精解》学习笔记(九)——阶段小结
- 《设计模式精解》学习笔记(十)------Strategy(策略)模式
- 面试问题
- 《设计模式精解》学习笔记(十一)------Decorator(装饰)模式
- 基于.Net平台应用程序唯一运行实例实现
- 《设计模式精解》学习笔记(十二)------Singleton(单件)模式
- 在人力资源树当中,上级对下级员工信息查看修改操作。