`
yugouai
  • 浏览: 498508 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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();      
    }       
}


二.配置文件中如下配置:

1.web.xml,利用spring mvc模式,大家应该都很熟悉了
    <servlet>
        <servlet-name>chb</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>chb</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

2.chb-servlet.xml,这里要配置映射,并可以设定最大可上传文件的大小
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!-- Multi-Action 用来标识method的变量名定义-->
    <bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
        <property name="paramName">
            <value>action</value>
        </property>
        <property name="defaultMethodName">
            <value>index</value>
        </property>
    </bean>
    
    <bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- one of the properties available; the maximum file size in bytes -->
        <property name="maxUploadSize" value="10000000"/>
    </bean>
    

    <bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
          <props>
            <prop key="/upload.do">fileUploadController</prop>
          </props>
        </property>
    </bean>
    
    <bean id="fileUploadController" class="chb.demo.web.FileUploadController">
        <property name="commandClass" value="chb.demo.web.FileUploadBean"/>
        <!-- 上传失败时跳转页面 -->
        <property name="formView" value="/user/err.jsp"/>
        <!-- 上传成功时跳转页面 -->
         <property name="successView" value="/user/confirmation.jsp"/>
   </bean>
</beans>

三.设定jsp页面
 <form id="form1" method="post" action="upload.do" enctype="multipart/form-data">                
    <tr>
        <td width="25%" align="right">上传文件:</td>
        <td><input id="file" type="file" NAME="file" style="width:300px;"></td>
    </tr>
    <tr align="center" valign="middle">
        <td height="60" colspan="2"><input type="submit" ID="BtnOK" value="确认上传"></td>
    </tr>
</form> 
分享到:
评论

相关推荐

    多文件上传MultipartFile

    然后,后台接收这些文件时,Spring MVC会自动将上传的文件封装成`MultipartFile`对象,放入一个`MultipartFile[]`数组中。 处理`MultipartFile`数组时,我们可以通过遍历数组来分别处理每个文件。每个`...

    多文件上传例子(解决中文乱码)

    多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...

    详解SpringMVC使用MultipartFile实现文件的上传

    在SpringMVC中,`MultipartFile`接口是处理文件上传的核心组件。本文将深入探讨如何使用`MultipartFile`实现文件上传,以及如何结合FTP服务器进行跨服务器文件传输。 首先,要启用SpringMVC的文件上传功能,我们...

    Android上传单文件和多文件(后台使用MultipartFile)

    本知识点主要聚焦于如何在Android中实现单文件和多文件的上传,以及后台使用`MultipartFile`类进行处理的方式。`MultipartFile`是Spring框架中的一个接口,常用于处理HTTP请求中的多部分(multipart)数据,包括文件...

    MultipartFile上传图片(多图片上传)

    在Java开发中,MultipartFile是Spring框架提供的一种用于处理上传文件的接口,它使得开发者能够方便地接收HTTP请求中的多部分(Multipart)数据,其中包括图片的上传。在本场景下,我们将探讨如何实现多图片上传的功能...

    java POI 通过MultipartFile删除Excel文件解析写入数据库

    在Web开发中,我们经常需要处理用户上传的文件,MultipartFile是Spring框架提供的一种处理文件上传的接口,它使得我们可以方便地接收和处理上传的Excel文件。下面我们将深入探讨如何使用Java POI和MultipartFile来...

    上传文件大小判断

    上传文件大小判断上传文件大小判断上传文件大小判断上传文件大小判断上传文件大小判断上传文件大小判断上传文件大小判断上传文件大小判断

    MultipartFile 视频获取时长(时分秒) VideoUtil.java

    本地生成file文件 MultipartFile转为file,获取时长(毫秒),换算毫秒为时分秒 删除本地的file文件

    Spring MultipartFile 文件上传【注解】& JQuery uploader plugin

    在本文中,我们将深入探讨Spring框架中的`MultipartFile`接口,它是处理文件上传的核心组件。同时,我们还将介绍如何结合JQuery的uploader插件来实现一个用户友好的前端文件上传功能。 Spring `MultipartFile` 是...

    利用MultipartFile实现文件上传功能

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

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

    Java 利用 MultipartFile 实现上传多份文件的代码 Java 中实现上传多份文件的代码是非常实用的技术,以下是关于 MultipartFile 的知识点: MultipartFile 概念 MultipartFile 是 Spring 框架中提供的一个接口,...

    解决springboot MultipartFile文件上传遇到的问题

    解决 Spring Boot MultipartFile 文件上传遇到的问题 基于 Spring Boot 框架的 MultipartFile 文件上传经常会遇到一些问题,本文将介绍如何解决这些问题,希望对大家有所帮助。 问题一:ajax 传过去的参数在 ...

    获取上传文件的流

    在Spring MVC框架中,可以使用`MultipartFile`接口处理文件上传。`MultipartFile`提供了`getBytes()`和`getInputStream()`方法,后者可以获取文件流。 4. **Node.js Express**: 使用Express框架,可以使用`...

    SpringMVC使用MultipartFile实现文件上传

    SpringMVC 使用 MultipartFile 实现文件上传 在本篇文章中,我们将详细介绍如何使用 SpringMVC 框架实现文件上传功能,通过使用 MultipartFile 对象来处理文件上传。下面我们将逐步讲解如何配置文件上传、创建上传...

    okhttp多文件上传

    - 文件上传过程中要检查文件大小和类型,防止恶意文件上传。 - 考虑到网络延迟和错误重试机制,确保客户端有良好的错误处理和重试策略。 综上所述,使用OkHttp进行多文件上传涉及客户端的Multipart Body构建、...

    通过import org.springframework.web.multipart.MultipartFile;上传文件

    通过import org.springframework.web.multipart.MultipartFile;上传文件的一个工具性的jar.

    File 转 MultipartFile 和MultipartFile的maven配置

    在Java Web开发中,我们经常会遇到需要处理上传文件的情况,其中`MultipartFile`是Spring MVC框架提供的一种用于处理文件上传的接口。然而,在实际操作中,我们可能需要将已有的`File`对象转换为`MultipartFile`,...

    Java原生服务器接收上传文件 不使用MultipartFile类

    在本文中,将详细介绍如何在Java原生服务器中接收上传的文件,而不需要使用Spring框架中常用的MultipartFile类。这种情况通常出现在需要与现有上传组件兼容或解决与其他上传模块的冲突时。首先,将介绍如何通过注释...

    springMVC实现多文件上传需要的jar

    4. **Controller处理**:在Spring MVC的Controller中,你需要创建一个带有`@RequestParam("files") MultipartFile[] files`注解的方法来接收上传的文件。这个方法会接收到一个`MultipartFile`数组,每个元素代表一个...

    SpringMVC 上传文件 MultipartFile 转为 File的方法

    在SpringMVC框架中,处理文件上传通常涉及`MultipartFile`接口,它是Spring提供的一个用于处理上传文件的数据类型。当用户通过HTTP请求上传文件时,SpringMVC会将这些文件封装成`MultipartFile`对象。然而,在实际...

Global site tag (gtag.js) - Google Analytics