下载文件
2011-11-26 16:44
78 查看
Web应用中实现文件下载的方法有两种,
其一是产量接直接只想下载资源,另一个方法的实现程序实现下载需要设置两个响应头:
设置Content-Type的值为:applic ation/x-msdownload.。Web服务器需要告诉浏览器其所输出的内容的类型不是破桶的文本文件或HTML文件,而是一个需要保存在本地的下载文件。
Web拂去其希望流浪不直接处理相应的试题内容,而是由用户选在相应的实体内容保存到一个文件中,着需要甚至Content-Sisposition报头。该报头制定了接受程序处理数据内容的方式,在http因公中只有attachment是标准方式,attachment表示需求用户干预。在attachment后面还可以指定filename参数,该参数是服务器建议浏览器将尸体内容般从到文件中的文件名称。在设置Content-Dispostion之前一定要指定Content-Type。
如下:
Response.setContenType("application/x-msdownload");
String ste="attachment;filename"+java.net.URLEncoder.encode(fileName,"UTF-8");
response.setHeader("Content-Disposition",str);
因为要下载的文件可以是各种类型的文件,所以要将文件传送给客户端,其相应内容应该被当做二进制来处理,所以应该调用 ServeltOutputStrea方法返回 对象来向客户端写入文件内容。
如下:
SerlrtOoutputStream sos = response.getOutStream();
Byte[] data=new byte[2048];
Int len=0;
While((len=is.rea(data))>0){
Sos.write(data,o,len);
}
综合案例:
private String id;
private String savename; //上传文件的名称,文件的uuid名
private String realName; //上传文件的真实名称
private String savepath; //记住文件的位置
private Date uptime; //文件的上传时间
private String description; //文件的描述
private String username; //上传人
下载文件示例:
FilerDemo1的代码
package com.hbsi.web.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class FilterDemo1 implements Filter{
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("hahaha");
chain.doFilter(request, response);
System.out.println("wwwww");
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
Xml文件代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>filter1</filter-name>
<filter-class>com.hbsi.web.filter.FilterDemo1</filter-class>
</filter>
<filter-mapping>
<filter-name>filter1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
其一是产量接直接只想下载资源,另一个方法的实现程序实现下载需要设置两个响应头:
设置Content-Type的值为:applic ation/x-msdownload.。Web服务器需要告诉浏览器其所输出的内容的类型不是破桶的文本文件或HTML文件,而是一个需要保存在本地的下载文件。
Web拂去其希望流浪不直接处理相应的试题内容,而是由用户选在相应的实体内容保存到一个文件中,着需要甚至Content-Sisposition报头。该报头制定了接受程序处理数据内容的方式,在http因公中只有attachment是标准方式,attachment表示需求用户干预。在attachment后面还可以指定filename参数,该参数是服务器建议浏览器将尸体内容般从到文件中的文件名称。在设置Content-Dispostion之前一定要指定Content-Type。
如下:
Response.setContenType("application/x-msdownload");
String ste="attachment;filename"+java.net.URLEncoder.encode(fileName,"UTF-8");
response.setHeader("Content-Disposition",str);
因为要下载的文件可以是各种类型的文件,所以要将文件传送给客户端,其相应内容应该被当做二进制来处理,所以应该调用 ServeltOutputStrea方法返回 对象来向客户端写入文件内容。
如下:
SerlrtOoutputStream sos = response.getOutStream();
Byte[] data=new byte[2048];
Int len=0;
While((len=is.rea(data))>0){
Sos.write(data,o,len);
}
综合案例:
private String id;
private String savename; //上传文件的名称,文件的uuid名
private String realName; //上传文件的真实名称
private String savepath; //记住文件的位置
private Date uptime; //文件的上传时间
private String description; //文件的描述
private String username; //上传人
下载文件示例:
FilerDemo1的代码
package com.hbsi.web.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class FilterDemo1 implements Filter{
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("hahaha");
chain.doFilter(request, response);
System.out.println("wwwww");
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
Xml文件代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>filter1</filter-name>
<filter-class>com.hbsi.web.filter.FilterDemo1</filter-class>
</filter>
<filter-mapping>
<filter-name>filter1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
相关文章推荐
- PHP中如何防止直接访问或查看或下载config.php文件
- Linux使用scp命令进行文件远程的上传或下载
- android 4.4 下载文件
- 用Visual C#实现文件下载
- 从数据库中下载文件的工具
- 让IIS支持.apk文件的下载(MIME类型问题)
- .NET下的FTP上传、下载文件操作类[收藏]
- CRT + lrzsz 进行远程linux系统服务器文件上传下载
- CSDN免积分下载地址获取器单文件
- 转:delphi 实现文件上传下载
- 使用PHP实现下载CSS文件中的图片
- retrofit 实现文件上传和下载
- Android 实现应用下载并在通知栏展示进度通知 打开APK文件
- 20171030_chr_download 文件下载改进版
- Linux远程服务器文件上传与下载
- .net 下载文件几种方式
- 防止用户直接输入地址下载资源文件(java实现)
- Strust2通过“流”下载文件时对结果的处理
- Struts学习笔记: 实现文件上传下载
- jsp生成 文件下载 比如txt