`
bosschen
  • 浏览: 197364 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

springMVC 文件下载

 
阅读更多
方法一

package com.clj.test.down.util;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.springframework.context.annotation.Scope;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;

/**
* <一句话功能简述>
* <功能详细描述>
*
* @author  Administrator
* @version  [版本号, 2014年3月7日]
* @see  [相关类/方法]
* @since  [产品/模块版本]
*/
@Component
@Scope("prototype")
@RequestMapping("/downloadFile")
public class DownloadAction
{

    @RequestMapping("download") 
    public ResponseEntity<byte[]> download() throws IOException { 
        String path="D:\\workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\springMVC\\WEB-INF\\upload\\图片10(定价后).xlsx";
        File file=new File(path);
        HttpHeaders headers = new HttpHeaders(); 
        String fileName=new String("你好.xlsx".getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题
        headers.setContentDispositionFormData("attachment", fileName);
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), 
                                          headers, HttpStatus.CREATED); 
    } 
}




方法二

public class WordView implements View {

    public String contentType = "application/msword";
    private String fileName = "unknow.doc";
    private InputStream istream;
    public String getContentType() {
        return contentType;
    }
    
    public WordView(String fileName, InputStream istream){
        this.fileName = fileName;
        this.istream = istream;
        
    }
    

    /**
     *Spring View的扩展实现
     *@see View
     */
    public void render(Map<String, ?> arg0, HttpServletRequest arg1,
            HttpServletResponse response) throws Exception {
        response.addHeader("Content-disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
        //response.setContentLength(istream.available());
        response.setContentType(contentType);
        POIFSFileSystem poifs = new POIFSFileSystem();
        DirectoryEntry directory = poifs.getRoot();
        directory.createDocument("WordDocument", this.istream);
        poifs.writeFilesystem(response.getOutputStream());
        response.getOutputStream().close();
    }
    
    
}


上传:
public static String upload(HttpServletRequest request,String fileDir) { 
       
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; 
//MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//MultipartHttpServletRequest multipartRequest = resolver.resolveMultipart(request);
       
        /**页面控件的文件流**/   
        MultipartFile multipartFile = multipartRequest.getFile("file");  
       
        //无文件上传
        if (multipartFile == null || "".equals(multipartFile.getOriginalFilename()))
        return null; 
       
        /**得到图片保存目录的真实路径**/   
        String logoRealPathDir = request.getSession().getServletContext().getRealPath(fileDir);
       
        /**根据真实路径创建目录**/   
        File logoSaveFile = new File(logoRealPathDir);    
        if(!logoSaveFile.exists())    
            logoSaveFile.mkdirs();          

        String dateStr = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());    
       
        /**获取文件的后缀**/   
        String suffix = multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf("."));
       
        String logImageName = dateStr+ suffix;//构建文件名称
       
        /**拼成完整的文件保存路径加文件**/   
        String fileName = logoRealPathDir + "/" + logImageName;               
        File file = new File(fileName);         
       
        try {    
            multipartFile.transferTo(file);    
        } catch (Exception e) {    
            e.printStackTrace();    
        }    
       
        return logImageName; 
    }

分享到:
评论

相关推荐

    springmvc文件下载

    本篇将详细探讨如何利用SpringMVC结合EasyUI实现文件下载功能,并着重讲解SpringMVC中的注解技术。 首先,SpringMVC是Spring框架的一部分,它提供了模型-视图-控制器(MVC)架构模式的实现,简化了Java Web应用程序...

    springMVC文件下载代码

    SpringMVC是一个强大的Java web开发框架,用于构建高效、可维护的Web应用程序。在这个实例中,我们将探讨如何...在这个实例中,提供的"springMVC文件上传.txt"文件可能包含更详细的代码实现或步骤解释,供学习者参考。

    SpringMVC文件下载-2021-04-12.txt

    SpringMVC的文件下载方式

    SpringMVC 实现文件上传下载、国际化等

    **二、SpringMVC文件下载** 文件下载主要是通过创建一个控制器方法,生成一个包含文件内容的HTTP响应。这里的关键是设置响应头的`Content-Disposition`属性,指示浏览器如何处理响应体。 1. **创建下载链接**:在...

    SpringMVC上传下载异常处理

    本文档主要介绍了SpringMVC的ModelAndView机制,使用SpringMVC实现文件上传,下载以及全局异常处理机制

    SpringMVC框架实现文件的上传和下载

    在SpringMVC框架中,文件的上传和下载是常见的功能需求,主要用于处理用户的数据交互,例如用户上传图片、文档等,或者系统提供文件下载服务。本文将深入探讨如何使用SpringMVC来实现这一功能。 首先,我们需要理解...

    IDEA SpringMVC 实现文件的上传下载

    在SpringMVC框架中,实现文件的上传与下载是常见的需求。IntelliJ IDEA作为流行的Java开发集成环境,为开发者提供了高效便捷的开发体验。在这个项目中,我们使用IDEA来构建一个基于SpringMVC的系统,实现了文件的...

    SpringMVC demo 完整源码实例下载.zip

    SpringMVC提供MultipartFile接口处理文件上传,而文件下载则可以通过StreamingResponseBody或者直接返回文件路径实现。这些功能的实现涉及了流处理和响应头设置,确保了文件传输的正确性和效率。 异常处理在Web应用...

    springmvc下Excel下载

    有效的纠正了下载时出现的文件类型未知或没有扩展名的情况,也处理了spring下载的情况下文件名以@RequestMapping的value值为下载文件名称的情况

    基于springmvc实现文件上传下载 基于AOP的日志功能

    基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于...

    JavaEE企业级开发-----SpringMVC实现 文件的上传下载实验报告.docx

    在JavaEE企业级开发中,SpringMVC框架是广泛用于构建Web应用程序的工具,它提供了丰富的功能,包括处理文件上传和下载。本实验报告将详细阐述如何利用SpringMVC实现文件上传与下载的功能。 首先,文件上传的核心...

    SpringMVC实现文件下载功能

    本文将从基本概念到实现细节,全方位介绍SpringMVC文件下载的实现过程。 一、文件下载概述 文件下载是指从Web服务器上下载文件到客户端计算机的过程。在本文中,我们将使用SpringMVC框架来实现文件下载功能。文件...

    springMvc文档

    springMvc学习

    SpringMVC文件上传和下载的工具类(完整项目)

    本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中。开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成类。

    尚硅谷SpringMVC部分全套教学文档笔记

    《尚硅谷SpringMVC部分全套教学文档笔记》涵盖了SpringMVC框架的核心概念和技术,通过一系列章节深入浅出地讲解了SpringMVC的各个方面。以下是基于这些文档内容的详细知识点总结: 1. **SpringMVC概述与HelloWorld*...

    SpringMVC文件增删改查(上传、更新、下载、删除)

    在SpringMVC框架中,文件操作是常见的功能需求,包括文件的上传、下载、更新和删除。本项目提供了完整的解决方案,覆盖了这些功能点。以下将详细解释这些知识点。 一、文件上传 在SpringMVC中,文件上传主要依赖于`...

    netty整合SpringMVC实现下载

    通过以上步骤,我们可以利用 Netty 的高性能特性处理网络通信,结合 SpringMVC 的 MVC 模式来处理业务逻辑,实现高效的文件下载服务。这种整合方式尤其适用于大文件下载或高并发场景,能充分利用硬件资源,提升用户...

    SpringMVC demo 完整源码实例下载

    SpringMVC提供了便捷的文件上传支持,通过`@RequestParam("file") MultipartFile file`注解接收文件,并且可以处理文件的保存和下载操作。这涉及到文件流的读写以及文件存储策略。 异常处理是任何应用程序都需要...

    springMvc单文件多文件上传

    springMvc 文件上传,springMvc 支持单文件和多文件上传,

    springMVC上传下载样例

    文件上传是项目开发中最常见的功能。为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器。 一旦设置...

Global site tag (gtag.js) - Google Analytics