`
endual
  • 浏览: 3544495 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

利用MultipartFile实现文件上传

 
阅读更多
 

利用MultipartFile实现文件上传

分类: spring 8593人阅读 评论(0) 收藏 举报

利用MultipartFile实现文件上传

         在java中上传文件似乎总有点麻烦,没.net那么简单,记得最开始的时候用smartUpload实现文件上传,最近在工作中使用spring的MultipartFile实现文件上传,感觉挺简单,在这里和大家分享一下.

一.主要有两个java类,和一般的servlet放在一起即可.

1.FileUploadBean.java

package chb.demo.web;

import org.springframework.web.multipart.MultipartFile;

/**
 * 
@author chb
 *
 
*/

public class FileUploadBean {

    private MultipartFile file;

    public void setFile(MultipartFile file) {
        this.file = file;
    }


    public MultipartFile getFile() {
        return file;
    }

}

2.FileUploadController.java

package chb.demo.web;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.validation.BindException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;


/**
 * 
@author chb
 *
 
*/

public class FileUploadController extends SimpleFormController {
        
    protected ModelAndView onSubmit(
        HttpServletRequest request,
        HttpServletResponse response,
        Object command,
        BindException errors){
        
        try
        {
            // cast the bean
            FileUploadBean bean = (FileUploadBean) command;

            // let's see if there's content there
            MultipartFile file = bean.getFile();
                               
            if (file == null{
                throw new Exception("上传失败:文件为�空");    
            }

            if(file.getSize()>10000000)        
            {
                throw new Exception("上传失败:文件大小不能超过10M");            
            }

            //得到文件�名
            String filename=file.getOriginalFilename();        
            
            if(file.getSize()>0){                
                try {
                    SaveFileFromInputStream(file.getInputStream(),"D:/",filename);
                }
 catch (IOException e) {
                    System.out.println(e.getMessage());
                    return null;
                }

            }

            else{
                throw new Exception("上传失败:上传文件不能为�空");
            }

            // well, let's do nothing with the bean for now and return:
            try {
                return super.onSubmit(request, response, command, errors);
                
            }
 catch (Exception e) {
                System.out.println(e.getMessage());
                return null;
            }

        }

        catch(Exception ex)
        {
            System.out.println(ex.getMessage());
            return null;
        }

    }
   
    
    /**保存文件
     * 
@param stream
     * 
@param path
     * 
@param filename
     * 
@throws IOException
     
*/

    public void SaveFileFromInputStream(InputStream stream,String path,String filename) throws IOException
    {      
        FileOutputStream fs=new FileOutputStream( path + "/"+ filename);
        byte[] buffer =new byte[1024*1024];
        int bytesum = 0;
        int byteread = 0; 
        while ((byteread=stream.read(buffer))!=-1)
        {
           bytesum+=byteread;
           fs.write(buffer,0,byteread);
           fs.flush();
        }
 
        fs.close();
        stream.close();      
    }
       
}
分享到:
评论

相关推荐

    利用MultipartFile实现文件上传功能

    "利用MultipartFile实现文件上传功能详解" 在Java Web开发中,文件上传是一个常见的需求,而MultipartFile是Spring框架中一个非常强大的工具,用于处理文件上传。本文将详细介绍如何使用MultipartFile实现文件上传...

    多文件上传MultipartFile

    总结来说,`MultipartFile`是Spring框架处理多文件上传的核心工具,结合前端的文件选择和`webuploader`等库可以实现断点续传功能,提升用户体验。在后台处理文件时,通常需要先执行数据库操作,确保数据一致性,然后...

    Java利用MultipartFile实现上传多份文件的代码

    Java 利用 MultipartFile 实现上传多份文件的代码 Java 中实现上传多份文件的代码是非常实用的技术,以下是关于 MultipartFile ...我们可以通过 MultipartFile 实现上传多份文件,并使用其提供的方法来处理文件上传。

    okhttp多文件上传

    本知识点将详细介绍如何利用OkHttp实现多文件上传,并结合服务器端代码来理解整个流程。 一、OkHttp简介 OkHttp是由Square公司开发的一个HTTP客户端库,它提供了一个简单、高效且强大的接口来处理网络请求。OkHttp...

    File 转 MultipartFile 和MultipartFile的maven配置

    然而,在实际操作中,我们可能需要将已有的`File`对象转换为`MultipartFile`,以便利用Spring MVC的文件上传功能。下面将详细介绍如何实现`File`到`MultipartFile`的转换以及相关的Maven配置。 ### 1. `File`转`...

    基于nio实现的多文件上传源码

    本主题“基于nio实现的多文件上传源码”探讨的是如何利用Java NIO来实现高效的多文件上传功能,尤其对于小文件数量较大的情况。 首先,理解NIO的基本概念是必要的。NIO中的“非阻塞”意味着当数据不可用时,读写...

    java springboot 切割分片上传大文件

    在Java SpringBoot框架中,处理大文件上传是一个常见的需求,特别是在大数据时代,用户可能需要上传GB级别的文件。传统的单次上传方式可能会面临超时、内存溢出等问题,因此,采用切割分片上传的方式能有效解决这些...

    SpringBoot 实现文件上传到本地目录 并返回可访问的文件地址.rar

    本项目的核心是利用Spring Boot的MVC特性来处理文件上传请求,以及构建一个安全、可靠且易于访问的文件服务。下面我们将详细探讨这个过程中的关键知识点。 1. **Spring Boot MVC**: Spring Boot MVC是Spring框架...

    Labview FTP上传文件

    Labview FTP上传文件是利用Labview(Laboratory Virtual Instrument Engineering Workbench)这一强大的图形化编程环境,通过FTP(File Transfer Protocol)协议实现文件的远程传输。FTP是一种标准网络协议,用于在...

    servlet实现文件上传功能

    在本篇讨论中,我们将深入探讨如何利用Servlet实现文件上传功能,以及在这个过程中涉及的关键知识点。 首先,我们需要了解HTTP协议。HTTP协议是无状态的,这意味着每次请求都是独立的。因此,在客户端(通常是...

    实现各种类型文件的多文件上传

    前端利用layui的upload组件提供友好的用户界面,后端借助SpringBoot的`MultipartFile`处理文件上传逻辑,两者协同工作,实现各种类型文件的多文件上传。这种技术方案在实际的Web应用开发中具有广泛的应用价值。

    SpringBoot(31) 整合MinIO实现文件上传与下载

    4. **定义服务接口**:创建一个服务接口,包含文件上传和下载的方法。例如: ```java public interface FileStorageService { void uploadFile(MultipartFile file); Resource downloadFile(String fileName); ...

    java使用uploadify插件实现多文件上传完整demo

    总之,利用Uploadify插件,结合Java后端处理,可以轻松实现多文件上传、进度显示和取消上传等功能。这个完整的demo项目提供了一个可以直接使用的模板,对于有文件上传需求的开发者来说,是一个很好的起点。

    springboot-layui调用文件服务器接口实现文件上传下载.docx

    - `@PostMapping("/upload")` 方法接收一个`MultipartFile`类型的参数`file`,这是Spring MVC处理文件上传的核心类。首先,我们定义一个外部文件服务器的上传接口URL,然后使用`RestTemplate`来调用这个接口。 - ...

    使用io实现文件上传

    标题“使用io实现文件上传”指的是利用Java的I/O机制处理客户端上传的文件数据。 首先,我们需要了解Java I/O流的基本概念。I/O流是Java提供的处理输入和输出数据的一种机制,分为字节流和字符流两大类。字节流处理...

    SpringMVC文件上传,多文件上传实例

    在这个“SpringMVC文件上传,多文件上传实例”中,我们将深入探讨如何在SpringMVC环境中实现文件上传功能,包括单个文件上传以及多个文件的批量上传。 1. **文件上传原理**: 文件上传是通过HTTP协议的POST请求来...

    springboot 实现超大文件上传实例

    2. **MultipartFile处理**:SpringBoot提供了`MultipartFile`接口,用于处理文件上传。它封装了文件内容、原始文件名、文件类型等信息,便于在服务器端进行操作。 3. **配置文件上传限制**:在SpringBoot中,可以...

    android 文件上传(多个或单个),图片上传

    总结,Android的文件上传涉及文件选择、读取、压缩、转换为流,以及利用Multipart请求将数据发送到服务器。同时,配合JSON数据可以传递更多的业务信息。理解并熟练运用这些技术,能够帮助开发者实现高效且稳定的文件...

    vue+springboot 大文件上传

    在大文件上传方面,SpringBoot 提供了支持文件上传的API,我们可以利用这些API来处理文件接收和存储。 ### 分片上传 大文件分片上传是一种优化策略,通过将大文件拆分为多个小块(片段)进行上传,然后在服务器端...

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

    本实验报告将详细阐述如何利用SpringMVC实现文件上传与下载的功能。 首先,文件上传的核心在于HTML表单(form)的正确配置。在创建用于上传文件的表单时,需要指定`enctype`属性为`multipart/form-data`。这是因为...

Global site tag (gtag.js) - Google Analytics