首页 > 其他 > 详细

文件下载

时间:2019-12-16 23:11:17      阅读:81      评论:0      收藏:0      [点我收藏+]
package com.bjsxt.servlet;

import org.apache.commons.io.IOUtils;
import sun.nio.ch.IOUtil;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @program: JavaEE
 * @description
 * @author: wuhao
 * @create: 2019-12-16 18:54
 **/
@WebServlet("/servlet/FileDownServlet")
public class FileDownServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获得服务器文件路径
        String realPath = req.getServletContext().getRealPath("/img");


        //获得文件名
        String filename = req.getParameter("filename");


        File file = new File(realPath+"/"+filename);

        //读取服务器文件
        FileInputStream fileInputStream = new FileInputStream(file);



        //设置下载文本的长度
        resp.setContentLength((int) file.length());
        // 设置文本的类型
        resp.setContentType(req.getParameter("filetype"));
        // 设置相应头
        resp.setHeader("Content-Disposition", "attachment;filename="+filename);


        //写出本地
        ServletOutputStream outputStream = resp.getOutputStream();


         IOUtils.copy(fileInputStream, outputStream);


         outputStream.close();
         fileInputStream.close();


    }
}

 

Content-Disposition属性有两种类型

  1. inline :将文件内容直接显示在页面
  2. attachment:弹出对话框让用户下载

文件下载

原文:https://www.cnblogs.com/ww103/p/12051505.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!