Springmvc 服务器端文件下载

转自:http://blog.csdn.net/boneix/article/details/51303280

业务场景:点击下载后直接保存而不是打开

解决代码:前端传入url

/**
     * 返回流
     *
     * @param requestMap 请求参数
     * @param response 返回对象
     */
    @RequestMapping(value = "/file2Stream", method = RequestMethod.GET)
    public void file2Stream(@Json Map<String, Object> requestMap, HttpServletResponse response) {
        InputStream iStream = null;
        OutputStream outStrem = null;
        try {
            String url = String.valueOf(requestMap.get("url"));
            iStream = getFileStream(url);
            String fileName = String.valueOf(requestMap.get("fileName"));
            fileName = new String(fileName.getBytes(), "ISO8859-1");
            response.setCharacterEncoding("utf-8");
            response.setContentType("multipart/form-data");
            response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
            outStrem = response.getOutputStream();
            outStrem.write(StreamUtils.getBytes(iStream));
            outStrem.flush();
        } catch (Exception e) {
            LOG.error("ProductSalesRecommendController.file2Stream  error | ({})", e);
        }finally {
            if(iStream != null){
                try {
                    iStream.close();
                    iStream = null;
                } catch (IOException e) {
                    LOG.error("file2Stream.InputStream.close  error | ({})", e);
                }
            }
            if(outStrem != null){
                try {
                    outStrem.close();
                    outStrem = null;
                } catch (IOException e) {
                    LOG.error("file2Stream.OutputStream.close  error | ({})", e);
                }
            }
        }
    }
/**
     * HttpClient获取网络路径的文件流
     *
     * @param url 链接字符串
     * @return InputStream
     * @throws IllegalStateException
     * @throws IOException
     */
    private InputStream getFileStream(String url)
            throws IllegalStateException, IOException {
        InputStream inStream = new URL(url).openStream();
        return inStream;
    }

  

时间: 2024-08-09 10:39:24

Springmvc 服务器端文件下载的相关文章

基于SpringMVC的文件下载实例

文件的下载和文件的上传一样都是Web应用中一个重要的功能点.这篇"SpingMVC的文件下载"是基于以前写过的那篇"SpringMVC实现文件上传"写的,因此这里就不从头开始搭建测试项目了,直接接着上次的那个项目来进行测试,因此看这篇文章之前需要简单浏览下上次的那篇文章 注:SpringMVC实现文件上传:http://www.zifangsky.cn/406.html (1)在UploadController.java这个controller里的upload方法中

SpringMVC之文件下载

1.java代码: @RequestMapping(value="fileDownLoad") public ResponseEntity<byte[]> testResponseEntity(HttpServletRequest request) throws Exception{ //缓冲输入流 byte[] body =null; //获取当前想买的真实路径 ServletContext servletContext = request.getServletConte

SpringMVC服务器端校验-无配置文件

使用Validator接口进行验证 在SpringMVC中提供了一个Validator接口,我们可以通过该接口来定义我们自己对实体对象的验证.接下来看一个示例. 假设我们现在有一个需要进行验证的实体类User,其代码如下所示: Java代码   public class User { private String username; private String password; public String getUsername() { return username; } public v

springmvc实现文件下载

//在springmvc中配置 <bean class="org.springframework.http.converter.StringHttpMessageConverter"/> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> <bean class="org.springframework.http.co

表单文件上传与文件下载

一.简介 使用form表单进行需要为form添加enctype="multipart/form-data" 属性,除此之外还需要将表单的提交方法改成post,如下 method="post". 二.示例 1.表单文件上传 网页代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 </head> 5 <body> 6 <form action="${pageC

Node.js 网页瘸腿爬虫初体验

延续上一篇,想把自己博客的文档标题利用Node.js的request全提取出来,于是有了下面的初哥爬虫,水平有限,这只爬虫目前还有点瘸腿,请看官你指正了. // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // 内置文件处理模块 var fs=require('fs'); // 创建一个将流数据写入文件的WriteStream对象 var outstream=fs.createWriteStream('./1.txt'); /

利用firephp调试php项目

前段时间在写一个项目一个基类5000多行,调试起来简直吐血. 穷则思思则变呀,最后在网上找到了一个调试PHP项目的好方法.感谢前辈的奉献! 客户端: 1.安装了Firebug. Firebug:https://addons.mozilla.org/zh-CN/firefox/addon/1843 2.安装FirePHP插件. FirePHP:https://addons.mozilla.org/zh-CN/firefox/addon/6149 服务器端文件下载地址: http://www.fir

Java EE模式和MVC

Java EE模式 什么是模式? 开发过程中总结出来的约定俗成的"套路". Java EE经历的模式 model1模式 技术组成:JSP+JavaBean model1的弊端:随着业务的复杂性,导致JSP页面比较混乱 model2模式 技术组成:JSP+Servlet+JavaBean model2的优点:使用各个技术擅长的方面 jsp:擅长页面的显示 Servlet:擅长Java业务代码 MVC:web开发的设计模式 M:Model--模型 JavaBean:封装数据 V:View-

SpringMVC实现单文件上传、多文件上传、文件列表显示、文件下载

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+standard.jar 整个相关的包如下: 整个工程目录如下: 二.配置web.xml和SpringMVC文件