JavaWeb--文件下载

该博客介绍了JavaWeb实现文件下载的思路,包括设置下载文件格式、响应头,获取文件绝对路径、本地字节输入流和响应输出流,在循环中读写文件。还给出了具体的代码示例,通过Servlet实现文件下载,并处理了文件名中文乱码问题。
思路:
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();
    }


}

 

转载于:https://www.cnblogs.com/Hubert-dzl/p/11187224.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值