java 批量上传文件

来源:互联网 发布:mac txt转码 编辑:程序博客网 时间:2024/05/21 22:27

需要 自行下载 commons的包

jsp 部分

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<html>
<head>
<title>文件批量上传</title>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
  </head>

  <body>
      <form id="batchUploadRiskFileForm" action="../testy/queryCheckDataList"  method="Post" enctype="multipart/form-data">
    选择文件:<input type="file" name="updateFiles" multiple="multiple" />
    <input type="submit" />
    <p>请在浏览文件时选取至少一个文件</p>
    </form>
    </body>
</html>


Java 部分

package com.yihuacomputer.yhcloud.web.action.hr.check;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.fileupload.disk.DiskFileItem;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import com.yihuacomputer.yhcloud.service.common.base.action.BaseController;
 

@Controller
@Scope("prototype")
@RequestMapping(value = "testy")
public class UploadAction extends BaseController
{  

    @RequestMapping(value = "/queryCheckDataList", method = RequestMethod.POST)
    @ResponseBody
    public ModelMap  batchUpdateRiskRule(@RequestParam("updateFiles") MultipartFile[] updateFiles, HttpServletRequest request)
    throws IOException
    {
        ModelMap result = new ModelMap();
        Map map = new HashMap();
        // 判断文件是否为空  
        if (!(updateFiles.length==0)) {  
            try {  
                 for (int i = 0; i < updateFiles.length; i++) {
                    /* // 文件保存路径  
                    String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"  
                            + updateFiles[i].getOriginalFilename();  */
                    
                    //这个updateFiles[i]是MultipartFile的
                    //MultipartFile 转换成 File  这里主要是把多文件单独一个一个提取出来单独处理
                     //不需要单独处理 直接批量上传 使用 updateFiles 就可以了
                    CommonsMultipartFile cf= (CommonsMultipartFile)updateFiles[i];
                    DiskFileItem fi = (DiskFileItem)cf.getFileItem();

                   //获取流中的单个文件

                    File file = fi.getStoreLocation();

                    result.put("0","上传成功");
               
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        } 
        return result;
    }
}  

serlve.xml 配置

<!-- 上传文件拦截,设置最大上传文件大小   500M=500*1024**1024*1024(B)=52428800 bytes -->  
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
        <property name="maxUploadSize" value="52428800" />  
</bean>