zoukankan      html  css  js  c++  java
  • Java Web学习总结-文件下载

      

      参考资料:https://www.cnblogs.com/xdp-gacl/p/4200090.html

      在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件下载功能的实现。

      直接贴图和代码:

        1、文件列表

      

      2、在Web.xml文件中配置DownLoadServlet

      

     <servlet>
           <servlet-name>DownLoadServlet</servlet-name>
           <servlet-class>com.thinkplatform.controller.DownLoadServlet</servlet-class>
      </servlet>
      
      <servlet-mapping>
           <servlet-name>DownLoadServlet</servlet-name>
           <url-pattern>/servlet/DownLoadServlet</url-pattern>
      </servlet-mapping> 

      3、html

    <td style="80px;">
        <c:url value="/servlet/DownLoadServlet" var="downurl">
            <c:param name="path" value="${item.path}"></c:param>
            <c:param name="fileName" value="${item.id}"></c:param>
        </c:url>
        <a href="${downurl}">下载</a>
    </
    td>

      4、java代码

    package com.thinkplatform.controller;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.URLEncoder;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class DownLoadServlet extends HttpServlet{
    
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                     throws ServletException, IOException {
            //得到要下载的文件名
            String fileName = request.getParameter("fileName");  
            //得到要下载的文件的路径
            String path = request.getParameter("path");  
    
            //得到要下载的文件
            File file = new File(path + "\" + fileName);
            //如果文件不存在
            if(!file.exists()){
                request.setAttribute("message", "您要下载的资源已被删除!!");
                return;
            }
           
            //设置响应头,控制浏览器下载该文件
            response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
            //读取要下载的文件,保存到文件输入流
            FileInputStream in = new FileInputStream(path + "\" + fileName);
            //创建输出流
            OutputStream out = response.getOutputStream();
            //创建缓冲区
            byte buffer[] = new byte[1024];
            int len = 0;
            //循环将输入流中的内容读取到缓冲区当中
            while((len=in.read(buffer))>0){
                //输出缓冲区的内容到浏览器,实现文件下载
                out.write(buffer, 0, len);
            }
            //关闭文件输入流
            in.close();
            //关闭输出流
            out.close();
        
        }
             
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
             doGet(request, response);
        }
             
          
    }
  • 相关阅读:
    Android自动化测试探索(三)Android SDK tools安装、aapt配置以及使用aapt获取apk包名
    城市要素库时空分析项目启动
    在Python3.5下安装和测试Scrapy爬网站
    快速制作规则及获取规则提取器API
    为采集动态网页安装和测试Python Selenium库
    为编写网络爬虫程序安装Python3.5
    【04】基础:将采集结果转成Excel
    【03】基础:同种网页结构套用采集规则
    【02】基础:单页采集(以微博博主主页采集为例)
    【01】基础:集搜客爬虫软件安装
  • 原文地址:https://www.cnblogs.com/shaosks/p/9073179.html
Copyright © 2011-2022 走看看