文件批量上传

Posted itzyz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件批量上传相关的知识,希望对你有一定的参考价值。

 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    
     <property name="defaultEncoding" value="utf-8"></property>   
      <!-- 配置文件的最大上传容量限制 --> 
     <property name="maxUploadSize" value="50242440"></property>    
    </bean>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上传下载</title>
</head>
<body>
    <form action="${pageContext.request.contextPath }/file/upload.html"
        method="post" enctype="multipart/form-data">
        选择文件:<input type="file"  multiple="multiple" name="files" width="120px" > <input
            type="submit" value="上传">
    </form>
</body>
</html>
/***
* 文件的批量上传
* @param files
* @param request
* @return
* @throws Exception
* @throws IOException
*/
@RequestMapping(value="/file/upload.html",method=RequestMethod.POST)
public String upload(@RequestParam("files") MultipartFile[] files,MultipartHttpServletRequest request) throws Exception, IOException{
//获取文件夹的名字
List<String[]> filess=new ArrayList<String[]>();
String path = request.getSession().getServletContext().getRealPath("/upload");
StringBuffer stringbuffer=new StringBuffer();
//对传进来的文件数组,进行 循环复制
for(MultipartFile multipartFile:files){
//判断文件是否为空
if(!multipartFile.isEmpty()) {
//将多个文件名拼接在一个字符串中,用;分隔
stringbuffer.append(multipartFile.getOriginalFilename());    
stringbuffer.append(";");
File dir=new File(path, multipartFile.getOriginalFilename());
//将文件名和对应的路径存放在数组中
String[] files1={multipartFile.getOriginalFilename(),dir.toPath().toString()};
//将一个文件的标识信息存入集合中
filess.add(files1);
//System.out.println(dir.toPath());
//文件不存则在创建
if(!dir.exists()&&!dir.isDirectory()){ 
dir.mkdirs(); 
} 
//文件进行复制
multipartFile.transferTo(dir);
}
}
String s=stringbuffer.substring(0, stringbuffer.length()-1);
//将文件信息集合存入数据库中
fileOperateService.insertfiles(filess);
//跳转到调用文件显示的界面
return "redirect:/file/showall.html"; 
}

 



以上是关于文件批量上传的主要内容,如果未能解决你的问题,请参考以下文章

摒弃FORM表单上传图片,异步批量上传照片

beego批量上传文件

java文件批量上传zip方式批量下载

JS大文件上传解决方案实例代码

python paramiko 多线程批量执行指令及批量上传文件和目录

JavaScript大文件上传解决方案实例代码