VVL1295

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  直接上代码:

  第一种写法:

    @RequestMapping(value = "download_cumstoms_declaration")
    public ModelAndView downloadCustomsDeclaration(@RequestParam(value = "batchId", required=false) Integer batchId, HttpServletResponse response) throws Exception {
        //下载
        File file = new File("D:" + File.separator + "VV" + File.separator + "EclipseWorkspace" + File.separator + "GRYB_WEB" + File.separator + "WebContent" + File.separator + "WEB-INF" + File.separator + "files" + File.separator + "test.pdf");
        InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
        
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition", "attachment; filename="+ file.getName());// +".pdf"
        OutputStream outputStream = response.getOutputStream();
        IOUtils.copy(inputStream, outputStream);
        response.flushBuffer();
        inputStream.close();
        outputStream.close();
    }

  第二种写法:使用ResponseEntity<byte[]>作为返回值

public class SpringDownloadUtils {
    
    public static ResponseEntity<byte[]> getResponseEntity(String fileName, File file) throws IOException {
        
        HttpHeaders headers = new HttpHeaders();
        String fileNameAtferEncoding = new String((fileName).getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题  
        headers.setContentDispositionFormData("attachment", fileNameAtferEncoding);   
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),    
                headers, HttpStatus.CREATED);
    }
}

  

 

 

  注意,如果是显示PDF,让浏览器处理,则是如下的写法(类似于css文件,也是直接在controller返回一个ModelAndView对象,如果以如上的方式返回css文件,在浏览器端应该会是下载)

    @RequestMapping(value = "download_cumstoms_declaration")
    public ModelAndView downloadCustomsDeclaration(@RequestParam(value = "batchId", required=false) Integer batchId, HttpServletResponse response) throws Exception {
        //网页显示
        ModelAndView mav = new ModelAndView("test.pdf");
        return mav;
    }

 

posted on 2016-09-22 12:03  bobo2018  阅读(220)  评论(0)    收藏  举报