文件下载弹出保存框

package com.hifogroup.wiki.web.trade;

import org.apache.poi.util.IOUtils; import org.springframework.core.io.ResourceLoader; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.nio.charset.StandardCharsets;

/**

  • Created by Administrator on 2018/4/24. */ @Controller @RequestMapping("file") public class FileDownController {

    @Resource private ResourceLoader resourceLoader; @RequestMapping("file") void download(String path, HttpServletResponse response, HttpServletRequest request) { InputStream inputStream = null; OutputStream servletOutputStream =null; try { // 下载保存的文件名 String filename = "1.mp4";

         path = "1.mp4";
         org.springframework.core.io.Resource resource = resourceLoader.getResource("classpath:"+path);
    
         // Excel 下载
         // response.setContentType("application/vnd.ms-excel");
    
         // 文件视频下载
         response.setContentType("application/octet-stream");
    
         response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
         response.addHeader("charset", "utf-8");
         response.addHeader("Pragma", "no-cache");
         String encodeName = URLEncoder.encode(filename, StandardCharsets.UTF_8.toString());
         response.setHeader("Content-Disposition", "attachment; filename=\"" + encodeName + "\"; filename*=utf-8''" + encodeName);
    
         inputStream = resource.getInputStream();
         servletOutputStream = response.getOutputStream();
         IOUtils.copy(inputStream, servletOutputStream);
         response.flushBuffer();
     } catch (Exception e) {
     } finally {
         try {
             if (servletOutputStream != null) {
                 servletOutputStream.close();
             }
             if (inputStream != null) {
                 inputStream.close();
             }
             // 召唤jvm的垃圾回收器
             System.gc();
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
    

    } }

猜你喜欢

转载自my.oschina.net/zzp123456/blog/1800495
今日推荐