MultipartFile实现文件上传

时间:2023-03-09 02:36:29
MultipartFile实现文件上传

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

1.FileUploadBean.java

MultipartFile实现文件上传package chb.demo.web;
MultipartFile实现文件上传
MultipartFile实现文件上传import org.springframework.web.multipart.MultipartFile;
MultipartFile实现文件上传
MultipartFile实现文件上传/**
MultipartFile实现文件上传 * @author chb
MultipartFile实现文件上传 *
MultipartFile实现文件上传 */
MultipartFile实现文件上传public class FileUploadBean {
MultipartFile实现文件上传
MultipartFile实现文件上传    private MultipartFile file;
MultipartFile实现文件上传
MultipartFile实现文件上传    public void setFile(MultipartFile file) {
MultipartFile实现文件上传        this.file = file;
MultipartFile实现文件上传    }
MultipartFile实现文件上传
MultipartFile实现文件上传    public MultipartFile getFile() {
MultipartFile实现文件上传        return file;
MultipartFile实现文件上传    }
MultipartFile实现文件上传}

2.FileUploadController.java

MultipartFile实现文件上传package chb.demo.web;
MultipartFile实现文件上传
MultipartFile实现文件上传import java.io.FileOutputStream;
MultipartFile实现文件上传import java.io.IOException;
MultipartFile实现文件上传import java.io.InputStream;
MultipartFile实现文件上传
MultipartFile实现文件上传import javax.servlet.http.HttpServletRequest;
MultipartFile实现文件上传import javax.servlet.http.HttpServletResponse;
MultipartFile实现文件上传
MultipartFile实现文件上传import org.springframework.validation.BindException;
MultipartFile实现文件上传import org.springframework.web.multipart.MultipartFile;
MultipartFile实现文件上传import org.springframework.web.servlet.ModelAndView;
MultipartFile实现文件上传import org.springframework.web.servlet.mvc.SimpleFormController;
MultipartFile实现文件上传
MultipartFile实现文件上传
MultipartFile实现文件上传/**
MultipartFile实现文件上传 * @author chb
MultipartFile实现文件上传 *
MultipartFile实现文件上传 */
MultipartFile实现文件上传public class FileUploadController extends SimpleFormController {
MultipartFile实现文件上传        
MultipartFile实现文件上传    protected ModelAndView onSubmit(
MultipartFile实现文件上传        HttpServletRequest request,
MultipartFile实现文件上传        HttpServletResponse response,
MultipartFile实现文件上传        Object command,
MultipartFile实现文件上传        BindException errors){
MultipartFile实现文件上传        
MultipartFile实现文件上传        try
MultipartFile实现文件上传        {
MultipartFile实现文件上传            // cast the bean
MultipartFile实现文件上传            FileUploadBean bean = (FileUploadBean) command;
MultipartFile实现文件上传
MultipartFile实现文件上传            // let's see if there's content there
MultipartFile实现文件上传            MultipartFile file = bean.getFile();
MultipartFile实现文件上传                               
MultipartFile实现文件上传            if (file == null) {
MultipartFile实现文件上传                throw new Exception("上传失败:文件为�空");    
MultipartFile实现文件上传            }
MultipartFile实现文件上传            if(file.getSize()>10000000)        
MultipartFile实现文件上传            {
MultipartFile实现文件上传                throw new Exception("上传失败:文件大小不能超过10M");            
MultipartFile实现文件上传            }
MultipartFile实现文件上传            //得到文件�名
MultipartFile实现文件上传            String filename=file.getOriginalFilename();        
MultipartFile实现文件上传            
MultipartFile实现文件上传            if(file.getSize()>0){                
MultipartFile实现文件上传                try {
MultipartFile实现文件上传                    SaveFileFromInputStream(file.getInputStream(),"D:/",filename);
MultipartFile实现文件上传                } catch (IOException e) {
MultipartFile实现文件上传                    System.out.println(e.getMessage());
MultipartFile实现文件上传                    return null;
MultipartFile实现文件上传                }
MultipartFile实现文件上传            }
MultipartFile实现文件上传            else{
MultipartFile实现文件上传                throw new Exception("上传失败:上传文件不能为�空");
MultipartFile实现文件上传            }
MultipartFile实现文件上传            // well, let's do nothing with the bean for now and return:
MultipartFile实现文件上传            try {
MultipartFile实现文件上传                return super.onSubmit(request, response, command, errors);
MultipartFile实现文件上传                
MultipartFile实现文件上传            } catch (Exception e) {
MultipartFile实现文件上传                System.out.println(e.getMessage());
MultipartFile实现文件上传                return null;
MultipartFile实现文件上传            }
MultipartFile实现文件上传        }
MultipartFile实现文件上传        catch(Exception ex)
MultipartFile实现文件上传        {
MultipartFile实现文件上传            System.out.println(ex.getMessage());
MultipartFile实现文件上传            return null;
MultipartFile实现文件上传        }
MultipartFile实现文件上传    }   
MultipartFile实现文件上传    
MultipartFile实现文件上传    /**保存文件
MultipartFile实现文件上传     * @param stream
MultipartFile实现文件上传     * @param path
MultipartFile实现文件上传     * @param filename
MultipartFile实现文件上传     * @throws IOException
MultipartFile实现文件上传     */
MultipartFile实现文件上传    public void SaveFileFromInputStream(InputStream stream,String path,String filename) throws IOException
MultipartFile实现文件上传    {      
MultipartFile实现文件上传        FileOutputStream fs=new FileOutputStream( path + "/"+ filename);
MultipartFile实现文件上传        byte[] buffer =new byte[1024*1024];
MultipartFile实现文件上传        int bytesum = 0;
MultipartFile实现文件上传        int byteread = 0; 
MultipartFile实现文件上传        while ((byteread=stream.read(buffer))!=-1)
MultipartFile实现文件上传        {
MultipartFile实现文件上传           bytesum+=byteread;
MultipartFile实现文件上传           fs.write(buffer,0,byteread);
MultipartFile实现文件上传           fs.flush();
MultipartFile实现文件上传        } 
MultipartFile实现文件上传        fs.close();
MultipartFile实现文件上传        stream.close();      
MultipartFile实现文件上传    }       
MultipartFile实现文件上传}
MultipartFile实现文件上传
MultipartFile实现文件上传

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

1.web.xml,利用spring mvc模式,大家应该都很熟悉了

MultipartFile实现文件上传    <servlet>
MultipartFile实现文件上传        <servlet-name>chb</servlet-name>
MultipartFile实现文件上传        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
MultipartFile实现文件上传        <load-on-startup>1</load-on-startup>
MultipartFile实现文件上传    </servlet>
MultipartFile实现文件上传
MultipartFile实现文件上传    <servlet-mapping>
MultipartFile实现文件上传        <servlet-name>chb</servlet-name>
MultipartFile实现文件上传        <url-pattern>*.do</url-pattern>
MultipartFile实现文件上传    </servlet-mapping>

2.chb-servlet.xml,这里要配置映射,并可以设定最大可上传文件的大小

MultipartFile实现文件上传<?xml version="1.0" encoding="UTF-8"?>
MultipartFile实现文件上传<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
MultipartFile实现文件上传<beans>
MultipartFile实现文件上传    <!-- Multi-Action 用来标识method的变量名定义-->
MultipartFile实现文件上传    <bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
MultipartFile实现文件上传        <property name="paramName">
MultipartFile实现文件上传            <value>action</value>
MultipartFile实现文件上传        </property>
MultipartFile实现文件上传        <property name="defaultMethodName">
MultipartFile实现文件上传            <value>index</value>
MultipartFile实现文件上传        </property>
MultipartFile实现文件上传    </bean>
MultipartFile实现文件上传    
MultipartFile实现文件上传    <bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
MultipartFile实现文件上传        <!-- one of the properties available; the maximum file size in bytes -->
MultipartFile实现文件上传        <property name="maxUploadSize" value="10000000"/>
MultipartFile实现文件上传    </bean>
MultipartFile实现文件上传    
MultipartFile实现文件上传
MultipartFile实现文件上传    <bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
MultipartFile实现文件上传        <property name="mappings">
MultipartFile实现文件上传          <props>
MultipartFile实现文件上传            <prop key="/upload.do">fileUploadController</prop>
MultipartFile实现文件上传          </props>
MultipartFile实现文件上传        </property>
MultipartFile实现文件上传    </bean>
MultipartFile实现文件上传    
MultipartFile实现文件上传    <bean id="fileUploadController" class="chb.demo.web.FileUploadController">
MultipartFile实现文件上传        <property name="commandClass" value="chb.demo.web.FileUploadBean"/>
MultipartFile实现文件上传        <!-- 上传失败时跳转页面 -->
MultipartFile实现文件上传        <property name="formView" value="/user/err.jsp"/>
MultipartFile实现文件上传        <!-- 上传成功时跳转页面 -->
MultipartFile实现文件上传         <property name="successView" value="/user/confirmation.jsp"/>
MultipartFile实现文件上传   </bean>
MultipartFile实现文件上传</beans>

三.设定jsp页面

MultipartFile实现文件上传 <form id="form1" method="post" action="upload.do" enctype="multipart/form-data">                
MultipartFile实现文件上传    <tr>
MultipartFile实现文件上传        <td width="25%" align="right">上传文件:</td>
MultipartFile实现文件上传        <td><input id="file" type="file" NAME="file" style="width:300px;"></td>
MultipartFile实现文件上传    </tr>
MultipartFile实现文件上传    <tr align="center" valign="middle">
MultipartFile实现文件上传        <td height="60" colspan="2"><input type="submit" ID="BtnOK" value="确认上传"></td>
MultipartFile实现文件上传    </tr>
MultipartFile实现文件上传</form>    

ok,现在就可以上传文件了,挺简单吧?这里我只列出了基本步骤,至于具体的操作(比如中文问题)可能就需要大家自己再完善完善了.