美文网首页
文件下载用servlet实现

文件下载用servlet实现

作者: 黎涛note | 来源:发表于2017-12-25 18:24 被阅读0次
一般来说文件下载需要的步骤为:

(1)获得客户端请求的文件的名称

String fileName = req.getParameter("fileName");

(2)获得服务器端的真实的物理路径

 File dir = new File(super.getServletContext().getRealPath("/temp"));

(3)创建目标文件的输入流对象

 File targetFile = new File(dir, fileName);

(4) 执行下载
<1>设置返回内容的类型

resp.setContentType("application/msword");//Content-Type

<2>设置返回内容的长度

resp.setContentLength((int)targetFile.length());//Content-Length

<3>设置怎样处理文件,征求客户的意见

 resp.setHeader("Content-Disposition","attachment;filename=test.doc");

<4>利用tomcat的FileUtils.copyFile方法进行文件的下载

FileUtils.copyFile(targetFile, resp.getOutputStream());
FileDownloadServlet.java
package com.xixi.servlet;

import java.io.File;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FileUtils;

@WebServlet(urlPatterns="/downloadServlet")
public class FileDownoloadServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
        throws ServletException, IOException {
        //设置字符编码
        req.setCharacterEncoding("utf-8");
        //获得请求的fileName的名称 
        String fileName = req.getParameter("fileName");
        if (fileName!=null && fileName.length() > 0) {
            //获得服务器端的真实的物理路径
            File dir = new File(super.getServletContext().getRealPath("/temp"));
            File targetFile = new File(dir, fileName);
            if (targetFile.exists()) {
                //执行下载
                //设置返回内容的类型
                resp.setContentType("application/msword");//Content-Type
                //设置返回内容的长度
                resp.setContentLength((int)targetFile.length());//Content-Length
                //设置怎样处理文件,征求客户的意见
                resp.setHeader("Content-Disposition", "attachment;filename=test.doc");
                //利用tomcat的FileUtils.copyFile方法进行文件的下载
                FileUtils.copyFile(targetFile, resp.getOutputStream());
            }
        }
    }
}

相关文章

  • 文件下载用servlet实现

    一般来说文件下载需要的步骤为: (1)获得客户端请求的文件的名称 (2)获得服务器端的真实的物理路径 (3)创建目...

  • Servlet 实现文件下载

    Servlet 实现文件下载 在生活或者工作中,总是避免不了下载文件,下载的东西有各种类型,譬如图片,视频,文本,...

  • SpringMVC之文件上传和下载

    SpringMVC实现文件的上传和下载相对于JavaWeb阶段我们使用过servlet实现文件上传和下载操作;而S...

  • 文件上传与下载

    Servlet实现文件上传与下载 所需包:commons-fileupload-1.2.1.jarcommons-...

  • servlet实现文件上传和下载

    前言 在学文件的上传和下载的时候,老师的东西用着很不舒服,于是就自己找的视频自己学,然后跟着视频敲的,时间长了,容...

  • 3.文件下载

    1.普通文件下载 2.使用servlet程序下载(推荐)

  • 06-网络(3)

    0715大文件断点下载AF 1、用nsoutputstream实现文件下载 (02-nsoutputstream...

  • servlet基础简记

    实现一个Servlet程序: 1.创建Servlet文件2.直接实现Servlet接口(不方便),可以通过继承Se...

  • 文件上传与下载(一)简单实现

    在慕课找到了一节关于java Web上传、下载问题的内容。内容总体包括: Jsp + Servlet 简单实现文件...

  • JavaWeb中实现文件上传的方式有哪些?

    问题:JavaWeb中实现文件上传的方式有哪些? 文件上传的方式 Servlet2.5 方式 Servlet3.0...

网友评论

      本文标题:文件下载用servlet实现

      本文链接:https://www.haomeiwen.com/subject/qjxrgxtx.html