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

      

    package com.zhengyizhan.Controller;

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.*;
    import java.net.URLEncoder;

    /**
    * Created by Administrator on 2019-09-20.
    */
    @Controller
    public class DownloadController {
    /**
    * 文件下载
    * @throws IOException
    */
    @RequestMapping(value="/download",method= RequestMethod.GET)
    public void download(@RequestParam(value="filename")String filename,
    HttpServletRequest request,
    HttpServletResponse response) throws IOException {
    //模拟文件,myfile.txt为需要下载的文件
    String path = request.getSession().getServletContext().getRealPath("WEB-INF\jsp\upload")+"\"+filename;
    //获取输入流
    InputStream bis = new BufferedInputStream(new FileInputStream(new File(path)));
    //转码,免得文件名中文乱码
    filename = URLEncoder.encode(filename,"UTF-8");
    //设置文件下载头
    response.addHeader("Content-Disposition", "attachment;filename=" + filename);
    //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
    response.setContentType("multipart/form-data");
    BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
    int len = 0;
    while((len = bis.read()) != -1){
    out.write(len);
    out.flush();
    }
    out.close();
    }
    }
  • 相关阅读:
    Java第十三天,内部类
    Java第十二天,权限修饰符
    Java面向对象基础
    opencv配置(win10+VS2015+opencv3.1)
    malloc函数
    C++用new创建对象和不用new创建对象的区别解析
    字符串匹配KMP算法中Next[]数组和Nextval[]数组求法
    C++将一个数组内容赋给另一个数组
    C++中的const和指针组合
    通过图片对比带给你不一样的KMP算法体验
  • 原文地址:https://www.cnblogs.com/itzyz/p/11553484.html
Copyright © 2011-2022 走看看