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

    思路:
    1.设置下载文件的格式
    2.设置响应头(程序运行时,文件是自动打开还是弹出下载框;以什么形式下载;文件名(处理中文乱码))
    3.获取文件的绝对路径
    4.获取本地字节输入流
    5.获取响应输出流
    6.在循环中读写文件
    package cn.kgc.cases;
    
    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.FileInputStream;
    import java.io.IOException;
    
    @WebServlet("/download")
    public class DownloadServlet extends HttpServlet {
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //定义一个变量给图片命名
            String name="music";
            //设置下载文件的格式
            response.setContentType("video/mpeg");
            //设置响应头:Content-Disposition使文件以下载框的形式弹出   attachment使文件以附件的形式下载  filename给文件命名  +后面的是处理文件名中文乱码
            response.setHeader("Content-Disposition","attachment;filename="+java.net.URLEncoder.encode(name,"utf-8"));
            //获取图片的绝对路径
            String realPath = getServletContext().getRealPath("张信哲-爱如潮水.mp3");
            //获取本地字节输入流读取图片
            FileInputStream fis = new FileInputStream(realPath);
            //获取response的输出流,向浏览器写图片
            ServletOutputStream out = response.getOutputStream();
            byte[]bytes=new byte[1024];
            int len=0;
            while((len=fis.read(bytes))!=-1){
                out.write(bytes,0,len);
            }
            //关流
            fis.close();
        }
    
    
    }
  • 相关阅读:
    Android Studio复制项目作为一个新的工程
    7-(基础入门篇)关于STM32底层程序使用说明
    6-(基础入门篇)学会编译lua固件,固件的合成
    5-(基础入门篇)学会刷Wi-Fi模块固件(刷LUA版本固件)
    STM32嵌入LUA开发(控制小灯闪耀)
    1-添加自己的Lua执行函数(ESP8266-SDK开发(lua版本))
    android 权限动态申请
    Android应用更新-自动检测版本及自动升级
    Android中AsyncTask的使用
    关于TCP和MQTT之间的转换
  • 原文地址:https://www.cnblogs.com/Hubert-dzl/p/11187224.html
Copyright © 2011-2022 走看看