前端JSP页面代码片段:

<!-- springMVC包装类上传文件 -->
<form name="uploadFiles" id="uploadFiles" action="http://sdoa.vaiwan.com:8081/sdoa/file/uploadFiles.do" enctype="multipart/form-data" method="post">
<div id="addFilelist">
<div id="file_0">
<input type="file" name="file_0" multiple="multiple" >
</div>
</div>
<input type="button" id="btn_add_file" value="增加一行" onclick="add_file()">
<input type="submit" value="上传" >
</form>
<script>
j=1;
function add_file(){
document.getElementById("addFilelist").innerHTML+='<div id="file_'+j+'"><input name="file_'+j+'" type="file" /><input type="button" value="删除" onclick="del_file('+j+')"/></div>';
j = j + 1;
}
function del_file(o){
document.getElementById("addFilelist").removeChild(document.getElementById("file_"+o));
}
</script>

java后台SpringMVC uploadFilesController类代码
@RequestMapping("uploadFiles.do")
@ResponseBody
public String uploadFiles(HttpServletRequest request, HttpServletResponse response) throws IllegalStateException, IOException {
System.out.println("*********************进入uploadFiles(HttpServletRequest request, HttpServletResponse response)方法********************");
String returnPath = "";
//创建一个通用的多部分解析器 将当前上下文初始化给CommonsMultipartResolver多部分解析器
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//判断 request 是否有文件上传,即多部分请求 检查form中是否有 enctype="multipart/form-data"属性值
if(multipartResolver.isMultipart(request)){
//转换成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
//取得request中的所有文件名
Iterator<String> iter = multiRequest.getFileNames();
while(iter.hasNext()){
//记录上传过程起始时的时间,用来计算上传时间
int pre = (int) System.currentTimeMillis();
//取得上传文件
MultipartFile file = multiRequest.getFile(iter.next());
if(file != null){
//取得当前上传文件的文件名称
String myFileName = file.getOriginalFilename();
//如果名称不为“”,说明该文件存在,否则说明该文件不存在
if(myFileName.trim() !=""){
System.out.println(myFileName);
//重命名上传后的文件名
String fileOriginalName = file.getOriginalFilename();
String newFileName=UUID.randomUUID()+fileOriginalName.substring(fileOriginalName.lastIndexOf("."));
String savedPath = request.getSession().getServletContext().getRealPath("/") + "uploadFiles/";//获取服务器指定文件存取路径
File saveDir = new File(savedPath);
if (!saveDir.exists()){
saveDir.mkdirs();
}
File savedFile = new File(savedPath,newFileName);
System.out.println(savedPath+"*********"+savedFile);
boolean isCreateSuccess = savedFile.createNewFile();
if(isCreateSuccess){
file.transferTo(savedFile); //转存文件
}
if (returnPath != null && returnPath != ""){
returnPath = returnPath +";"+ savedFile;
}else {
returnPath = returnPath + savedFile;
}
}
}
//记录上传该文件后的时间
int finaltime = (int) System.currentTimeMillis();
System.out.println(finaltime - pre);
}
return returnPath;
}
return "方法执行错误";
} 不好的地方就是前端页面每次点击添加一行时页面会刷新一下,先记录下来,下一步准备使用ajax+input的multiple="multiple"属性实现异步的多文件上传。
												

利用springMVC包装类上传多个文件的更多相关文章

  1. springMVC从上传的Excel文件中读取数据

    示例:导入客户文件(Excle文件) 一.编辑customer.xlsx 二.在spring的xml文件设置上传文件大小 <!-- 上传文件拦截,设置最大上传文件大小 10M=10*1024*1 ...

  2. SpringMVC 之 上传文件

    一.需求: 利用SpringMVC实现上传文件的功能 二.思路: 1.我们可以在SpringMVC中,通过配置一个MultipartResolver来上传文件. 2.通过MultipartFile f ...

  3. 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!

    利用SecureCRT上传.下载文件(使用sz与rz命令),超实用! 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39623169 借 ...

  4. SpringMVC进行文件的上传以及多文件的上传(转)

    基本的SpringMVC的搭建在我的上一篇文章里已经写过了,这篇文章主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤 SpringMVC 基础教程 框架分析:htt ...

  5. 利用WebClient上传参数及文件流到远程ashx服务

    原文 利用WebClient上传参数及文件流到远程ashx服务 1 思路: WebClient.UploadFile()方法可以上传文件:UploadData()方法可以上传数据参数:如何合二为一既上 ...

  6. SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...

  7. springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)

    参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp ...

  8. 【SpringMVC】使用SpringMVC进行上传文件!

    写在前面: 之前在上传文件的时候,使用的是commons-file-upload这个插件,非常方便,能控制每个文件的大小,总共大小,缓存,以及支持多个文件的同时上传,但是写一次上传文件的后台代码量太大 ...

  9. Xshell5下利用sftp上传下载传输文件

    sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.sftp 与 ftp 有着几乎一样的语法和功能.SFTP 为 SSH ...

随机推荐

  1. mobilebone.js-mobile移动web APP单页切换骨架

    昨天看到张鑫旭前辈发了一条微博,便互动了下,是他的一个开源移动端框架,没事看看,这是效果

  2. 纪念第一次ak。。。

    1.MM的数学作业 [题目大意] 今天,MM在上数学课,数学课的主题是函数.讲完以后老师留了一个家庭作业,让同学们回家思考.题目如下: 定义一个函数,F(x)表示x转成二进制后,二进制中“1”的个数. ...

  3. Activity与Service数据交互:Binder、bindService的用法

    package com.lixu.jiaohu; import com.lixu.jiaohu.MyAppService.Mybind; import android.app.Activity; im ...

  4. maven 构建war包时排除web.xml

    在使用maven构建项目的war包时,有时并不需要src/webapp/WEB-INF/下的一些文件. 这时可以通过maven-war-plugin创建配置来排除这些文件.下面贴出我平时使用的pom. ...

  5. JS将日期转化为unix时间戳

    var str = '2008-10-09 21:35:28';//PHP中对应的UNIX时间戳为1223559328 var new_str = str.replace(/:/g,'-'); new ...

  6. EasyGui 学习文档【超详细中文版】

    演示使用 Python 3.3.3 版本 0. 安装 EasyGui 官网:http://easygui.sourceforge.net 最新版: <ignore_js_op> easyg ...

  7. 自定义iconfont 图标库下载本地在移动App的使用及svg彩色图标

    自定义iconfont 图标库扩展 在Hbuilder开发移动App的使用及svg彩色图标(或mui图标库的自定义扩展) 前提准备:1.登录阿里iconfont图标库,创建自己的项目,地址:http: ...

  8. php 特殊字符

    今天碰到一个处理文件特殊字符的事情,再次注意到这个问题,在php中: * 以单引号为定界符的php字符串,支持两个转义\'和\\ * 以双引号为定界符的php字符串,支持下列转义:     \n 换行 ...

  9. jsp参考手册

    DHTML手册javascript programmer's reference

  10. Spring学习(二)--IOC

    一.什么是IOC? 孤傲苍狼总结的理解: https://www.cnblogs.com/xdp-gacl/p/4249939.html 我的理解(不知道对不对哈,不对的话请各位大神指出): IOC往 ...