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

Spring中实现文件上传

阅读更多
实现图片上传
  用户必须能够上传图片,因此需要文件上传的功能。比较常见的文件上传组件有Commons FileUpload(http://jakarta.apache.org/commons/fileupload/a>)和COS FileUpload(http://www.servlets.com/cos),Spring已经完全集成了这两种组件,这里我们选择Commons FileUpload。
  由于Post一个包含文件上传的Form会以multipart/form-data请求发送给服务器,必须明确告诉DispatcherServlet如何处理MultipartRequest。首先在dispatcher-servlet.xml中声明一个MultipartResolver:

<bean id="multipartResolver"   
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">   
    <!-- 设置上传文件的最大尺寸为1MB -->   
    <property name="maxUploadSize">   
        <value>1048576</value>   
    </property>   
</bean> 
 
这样一旦某个Request是一个MultipartRequest,它就会首先被MultipartResolver处理,然后再转发相应的Controller。
在UploadImageController中,将HttpServletRequest转型为MultipartHttpServletRequest,就能非常方便地得到文件名和文件内容:


public ModelAndView handleRequest(HttpServletRequest request,    
            HttpServletResponse response) throws Exception {    
        // 转型为MultipartHttpRequest:    
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;    
        // 获得文件:    
        MultipartFile file = multipartRequest.getFile(" file ");    
        // 获得文件名:    
        String filename = file.getOriginalFilename();    
        // 获得输入流:    
        InputStream input = file.getInputStream();    
        // 写入文件    
   
        // 或者:    
        File source = new File(localfileName.toString());    
        multipartFile.transferTo(source);    
    } 
 

 
生成缩略图 (目录)
  当用户上传了图片后,必须生成缩略图以便用户能快速浏览。我们不需借助第三方软件,JDK标准库就包含了图像处理的API。我们把一张图片按比例缩放到120X120大小,以下是关键代码:


public static void createPreviewImage(String srcFile, String destFile) {    
        try {    
            File fi = new File(srcFile); // src    
            File fo = new File(destFile); // dest    
            BufferedImage bis = ImageIO.read(fi);    
   
            int w = bis.getWidth();    
            int h = bis.getHeight();    
            double scale = (double) w / h;    
            int nw = IMAGE_SIZE; // final int IMAGE_SIZE = 120;    
            int nh = (nw * h) / w;    
            if (nh > IMAGE_SIZE) {    
                nh = IMAGE_SIZE;    
                nw = (nh * w) / h;    
            }    
            double sx = (double) nw / w;    
            double sy = (double) nh / h;    
   
            transform.setToScale(sx, sy);    
            AffineTransformOp ato = new AffineTransformOp(transform, null);    
            BufferedImage bid = new BufferedImage(nw, nh,    
                    BufferedImage.TYPE_3BYTE_BGR);    
            ato.filter(bis, bid);    
            ImageIO.write(bid, " jpeg ", fo);    
        } catch (Exception e) {    
            e.printStackTrace();    
            throw new RuntimeException(    
                    " Failed in create preview image. Error:  "   
                            + e.getMessage());    
        }    
    }   

分享到:
评论
1 楼 jjjssh 2010-06-25  
controller都没写完~

相关推荐

    spring 文件上传实例

    本实例将深入探讨如何在Java Spring中实现文件上传,并提供一个完整的配置示例。文件上传在现代Web应用中有着广泛的应用,如用户头像上传、文档共享、图片库等。 首先,让我们了解一下Spring中的文件上传工作原理。...

    spring实现文件上传下载

    在Spring MVC框架中,文件上传和下载是常见的功能需求,尤其在Web应用中。Spring MVC提供了强大的支持来处理这些操作,使得开发者可以轻松地实现文件的上传和下载功能。下面将详细阐述如何利用Spring MVC来实现这两...

    springcloud处理文件上传

    本话题主要探讨如何在Spring Cloud环境中处理文件上传,特别是在结合Feign和Zuul这两个组件时的实现方法。Feign是Spring Cloud的一个声明式HTTP客户端,用于简化服务间的调用;而Zuul则是作为API网关,提供路由、...

    ssm框架--spring mvc实现文件上传

    在"ssm框架--spring mvc实现文件上传"这个项目中,我们将重点探讨如何在Spring MVC中实现实现文件上传的功能。 文件上传是Web应用中的常见需求,Spring MVC提供了便捷的API来处理这一任务。首先,你需要在表单中...

    Spring MVC实现文件的上传和下载

    通过以上步骤,你可以利用Spring MVC轻松实现文件的上传和下载功能。实际开发中,还需要结合具体需求,例如添加权限控制、进度条显示等。对于更复杂的场景,可能需要引入额外的库,如Apache Commons FileUpload,以...

    Java Spring Boot应用程序中实现文件上传和下载功能

    ### Java Spring Boot应用程序中实现文件上传和下载功能 在现代Web开发中,文件上传与下载是常见的需求之一。Spring Boot框架提供了简洁的方式帮助开发者轻松实现这些功能。本文将详细介绍如何在Spring Boot项目中...

    SPRING 实现文件上传

    只需改动一点点就可以实现所有格式的文件的上传

    SpringBoot实现文件上传和下载.docx

    总的来说,Spring Boot提供了一种简洁的方式来实现文件上传和下载功能,结合Thymeleaf和其他Spring组件,可以快速构建出功能完善的Web应用。通过合理的接口设计和实现,我们可以实现可扩展且易于维护的文件存储服务...

    基于Spring实现文件上传功能

    在本文中,我们将主要介绍基于Spring实现文件上传功能的方法。 二、Spring文件上传机制 Spring框架提供了多种方式来实现文件上传,包括使用MultipartFile接口、使用Servlet API等。其中,MultipartFile接口是...

    spring mvc文件上传实现进度条

    在Spring MVC框架中,文件上传是一项常见的功能,而实现文件上传进度条则能提供更好的用户体验。这个场景通常涉及到前端的JavaScript或jQuery库(如jQuery File Upload)与后端的Spring MVC控制器之间的交互,以及...

    spring boot 实现文件上传

    在Spring Boot应用中实现文件上传是一项常见的需求,尤其在构建Web服务时。Spring Boot提供了便捷的方式来处理文件上传,包括小文件和大文件。本示例是建立在之前集成MyBatis的基础之上,增加了文件上传的功能。 ...

    jersey+spring+srpingmvc实现上传

    【标题】:“jersey+spring+...通过这个示例,开发者可以了解到如何利用Java生态系统中的这些流行框架来实现文件上传功能,并为自己的项目提供参考。同时,理解并实践这些知识点,也有助于提升对Web开发的整体理解。

    Spring Boot实现文件上传示例代码

    本示例将深入探讨如何在Spring Boot应用中实现文件上传,包括单个文件和多个文件的上传处理。 首先,我们需要在Spring Boot的配置文件(application.properties或application.yml)中配置文件存储路径。例如: ```...

    Spring boot整合MinIO客户端实现文件管理

    MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和...Spring boot整合MinIO客户端实现文件管理

    Spring MVC实现文件的上传下载

    在Spring MVC中实现文件的上传和下载是常见的需求,这涉及到处理multipart/form-data类型的表单数据,以及对文件的存储和读取操作。 首先,让我们了解文件上传的基本流程。当用户通过表单提交带有文件的请求时,...

    Springboot实现文件上传

    本篇文章将深入探讨如何使用Spring Boot实现文件上传功能,包括设置服务器端口、定义文件存储路径以及如何在前端展示所上传的图片。 首先,我们需要在Spring Boot项目中引入所需的依赖。对于文件上传,我们通常会...

    基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传

    基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 项目经过严格测试,确保可以运行! 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...

    spring mvc上传文件

    在本文中,我们将深入探讨如何使用Spring MVC框架与Ajax技术结合来实现文件上传的功能。Spring MVC是Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构模式,用于构建Web应用程序。Ajax(Asynchronous ...

    ajaxupload在spring mvc4.2中实现简单文件上传

    在Spring MVC 4.2框架中实现AjaxUpload(异步文件上传)是一个常见的需求,它允许用户在不刷新整个页面的情况下进行文件上传,提供更好的用户体验。以下是对这一主题的详细阐述: 1. **AjaxUpload简介**: Ajax...

Global site tag (gtag.js) - Google Analytics