---JavaWeb文件下载

来源:互联网 发布:easybcd怎么引导linux 编辑:程序博客网 时间:2024/06/05 06:41

文件下载比起文件上传就显得很简单了。
首先呢,在响应请求额时候,只需要将来服务器磁盘上的文件读入,然后以流的方式响应给客户端浏览器就可以了(此外,还要设置一个响应头,告诉浏览器,这个是要下载一个文件)

写一个测试一下:
download.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"    pageEncoding="ISO-8859-1"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Insert title here</title></head><body>    <a href="servlet/FileDownloadServlet">download</a></body></html>

TestFileDownloadServlet.java:

package com.tuxianchao.servlet;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestFileDownloadServlet extends HttpServlet {    /**     *      */    private static final long serialVersionUID = 1L;    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        File file = new File("D:/file/test.txt");        String fileName = file.getName();        System.out.println(fileName);        // 设置响应头,让浏览器以下载文件的方式打开资源,filename指定文件名        response.setHeader("content-disposition", "attachment;filename=" + fileName);        FileInputStream in = new FileInputStream(file);        OutputStream out = response.getOutputStream();        byte[] buffer = new byte[1024];        int len = 0;        while ((len = in.read(buffer)) != -1) {            out.write(buffer, 0, len);        }        out.close();        in.close();    }}

这里写图片描述

点击后:
这里写图片描述

0 0
原创粉丝点击