下载文件

来源:互联网 发布:北方数据 杂志 编辑:程序博客网 时间:2024/05/17 00:53
 

 

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>