zoukankan      html  css  js  c++  java
  • 文件的下载

    文件的下载:

    1). 步骤:

    I. 设置 contentType 响应头: 设置响应的类型是什么 ? 通知浏览器是个下载的文件

    response.setContentType("application/x-msdownload");

    II. 设置 Content-Disposition 响应头: 通知浏览器不再有浏览器来自行处理(或打开)要下载的文件, 而由用户手工完成

    response.setHeader("Content-Disposition", "attachment;filename=abc.txt");

    III. 具体的文件: 可以调用 response.getOutputStream 的方式, 以 IO 流的方式发送给客户端.

    OutputStream out = response.getOutputStream();
    String pptFileName = "C:\Users\Think Pad\Desktop\__正在上课__\11.尚硅谷_JavaWEB_监听器.pptx";

    InputStream in = new FileInputStream(pptFileName);

    byte [] buffer = new byte[1024];
    int len = 0;

    while((len = in.read(buffer)) != -1){
    out.write(buffer, 0, len);
    }

    in.close();

    out不用关闭,是提供给用户的!

     1 import java.io.FileInputStream;
     2 import java.io.IOException;
     3 import java.io.InputStream;
     4 import java.io.OutputStream;
     5 import java.net.URLEncoder;
     6 
     7 import javax.servlet.ServletException;
     8 import javax.servlet.http.HttpServlet;
     9 import javax.servlet.http.HttpServletRequest;
    10 import javax.servlet.http.HttpServletResponse;
    11 
    12 /**
    13  * Servlet implementation class DownloadServlet
    14  */
    15 public class DownloadServlet extends HttpServlet {
    16     private static final long serialVersionUID = 1L;
    17 
    18     /**
    19      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    20      */
    21     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    22         response.setContentType("application/x-msdownload"); 
    23         
    24         String fileName = "文件下载.pptx";
    25         response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
    26         
    27         OutputStream out = response.getOutputStream();
    28         String pptFileName = "C:\Users\Think Pad\Desktop\__正在上课__\JavaWEB_监听器.pptx";
    29         
    30         InputStream in = new FileInputStream(pptFileName);
    31         
    32         byte [] buffer = new byte[1024];
    33         int len = 0;
    34         
    35         while((len = in.read(buffer)) != -1){
    36             out.write(buffer, 0, len);
    37         }
    38         
    39         in.close();
    40     }
    41 
    42 }
    纸上学来终觉浅,觉知此事需躬行
  • 相关阅读:
    你理解的软件测试是什么?将决定你的工作内容和工作方式。
    测试一个域名DNS查询时间的shell脚本
    Iptables 防火墙开放常见的22,53,80端口
    linux服务器查看公网IP信息的方法
    SQL server 2016 安装步骤
    Thinkpad 笔记本VMware Workstation 安装虚拟机出现“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”解决方法
    Real-Time Loop Closure in 2D LiDAR SLAM论文解读
    前端开发学习路线
    服务器开发学习路径
    讲义和教材的区别
  • 原文地址:https://www.cnblogs.com/dreamHighMjc/p/7577264.html
Copyright © 2011-2022 走看看