SpringMVC与ajaxfileupload.js实现多个文件同时上传

原创 2016年08月31日 00:25:47

修改ajaxfileupload.js,在SpringMVC下实现多个文件同时上传

jsp代码

<form:form id="multiUploadForm" commandName="multiFileInfo">
    <table>
        <tr>
            <th>用户名称</th>
            <td>
                <form:input path="username"/>
            </td>
        </tr>

        <tr>
            <th>用户密码</th>
            <td>
                <form:input path="password"/>
            </td>
        </tr>

        <tr>
            <th align="left">资源文件</th>
            <td>
                <input type="file" id="file1" name="file" accept="application/zip"/><br/>
            </td>
        </tr>

        <tr>
            <th align="left">资源文件</th>
            <td>
                <input type="file" id="file2" name="file" accept="application/zip"/><br/>
            </td>
        </tr>

        <tr>
            <td>
                <input type="button" value="上传" onclick="uploadFile('<%=contextPath%>')">
            </td>
        </tr>
    </table>
</form:form>

<script type="text/javascript">
    function uploadFile(contextPath) {
        var fileIds = new Array();
        var formHandle = document.getElementById("multiUploadForm");
        var tagElements = formHandle.getElementsByTagName('input');
        for (var j = 0; j < tagElements.length; j++) {
            element = tagElements[j];
            if ("file" == element.type) {
                fileIds.push(element.id);
            }
        }

        var requestUrl = contextPath + "/clientresources/multi";
        $.ajaxFileUpload({
            url : requestUrl,
            secureuri : false,
            //fileElementId : ['file1', 'file2'],
            fileElementId : fileIds,
            dataType: 'text',
            data : {
                username : $("#username").val(),
                password : $("#password").val()
            },
            success: function () {
                alert('上传成功');
            },
            error: function (data, status, e) {
                alert('上传出错');
            }
        });
    }
</script>

springMVC的model

public class MultiFileInfo {
    public String username;
    public String password;
    public MultipartFile[] file;

    setter...
    getter...
}

springMVC的controller

@RequestMapping(value = "/clientresources/multi", method = RequestMethod.POST)
public String multiFile(Model model, @ModelAttribute MultiFileInfo multiFileInfo) {
   for (MultipartFile file : multiFileInfo.file) {
       System.out.println(file.getOriginalFilename() + ":" + file.getSize());
   }
   return "client_resources/multi";
}

修改ajaxfileupload.js中的createUploadForm


/*被注释掉的代码是原有代码,替换成下面的代码。
var oldElement = jQuery('#' + fileElementId);
var newElement = jQuery(oldElement).clone();
jQuery(oldElement).attr('id', fileId);
jQuery(oldElement).before(newElement);
jQuery(oldElement).appendTo(form);
*/

if(typeof(fileElementId) == 'string'){
    fileElementId = [fileElementId];
}
for(var i in fileElementId){
    var oldElement = jQuery("input[id="+fileElementId[i]+"]");
    oldElement.each(function() {
        var newElement = jQuery($(this)).clone();
        jQuery(oldElement).attr('id', fileId);
        jQuery(oldElement).before(newElement);
        jQuery(oldElement).appendTo(form);
    });
}

注意,上传文件的input需要设置不同的id,name属性也必须设置。

springMVC+EasyUI 多文件上传功能

springMVC+EasyUI 多文件上传功能springMVC+EasyUI 多文件上传功能 最近做一个日志分析功能,由于log文件和日志管理项目不在同一服务器上,所以需求做一个简单的日志上...
  • yelin232812
  • yelin232812
  • 2017年09月22日 14:08
  • 326

springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项

在使用easyUI做前端样式展示时,遇到了文件上传的问题,而且是在弹出层中提交表单,想做到不刷新页面,所以选择了使用ajaxFileUpload插件。提交表单时一直发现后台接收不到文件,后检查发现,原...
  • maozherong
  • maozherong
  • 2017年04月22日 23:45
  • 1863

SpringMVC + ajaxfileupload的多文件上传

最近做一个springmvc ajax多文件上传,倒腾了下,查阅了部分资料搞定了!现在分享:    1.Spring mvc        a.xml配置: ...
  • wei_ge163
  • wei_ge163
  • 2012年12月07日 10:17
  • 22639

freemarker+springMVC+ajaxfileupload实现异步图片上传(多张)

freemarker functi...
  • u013111003
  • u013111003
  • 2016年08月03日 21:03
  • 2402

spring mvc 文件、图片上传(极简)ajaxFileUpload

没想到做个图片上传耽误这么长时间,特此整理。 基于springMVC后端框架。 前端使用jQuery插件ajaxFileUpload.js。 参考文章:spring mvc(注解)上传文件的简单例...
  • huobing123456789
  • huobing123456789
  • 2016年02月26日 15:36
  • 5102

ajaxfileupload.js+SpringMVC实现文件上传

一、jsp页面 js下载 : http://download.csdn.net/detail/longtingjing/9725858 js引用: ...
  • longtingjing
  • longtingjing
  • 2016年12月30日 19:09
  • 1026

js实现上传多个图片或者多个文件

主要是运用html5的    filereader可以参考  http://blog.csdn.net/yaoyuan_difang/article/details/38582697FileReade...
  • lu_tu_zhong
  • lu_tu_zhong
  • 2017年01月18日 18:13
  • 9440

html中input上传多个文件

如何使用html上传多个文件呢?我搜索中文怎么也找不到合适的,都是用js动态添加input,然后提交,不能满足我想要的——打开选择文件的窗口后可以一次性选择多个文件。 然后我尝试搜索英文"html ...
  • godha
  • godha
  • 2013年10月22日 15:55
  • 17343

springMVC多文件上传不同name的file

关于springMVC一个表单上传多个不同文件名的文件方法
  • xiajingyc
  • xiajingyc
  • 2016年12月02日 16:30
  • 1808

使用ajaxfileupload同时上传多个文件

ajaxFileupload这个插件用于上传文件,不过它默认是只能上传一个文件。通过修改其源代码,可以方便地实现多个文件上传。 ajaxFileupload的原理挺简单的,它将用户指定(通过ID...
  • ybb350680013
  • ybb350680013
  • 2014年10月29日 16:51
  • 4626
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringMVC与ajaxfileupload.js实现多个文件同时上传
举报原因:
原因补充:

(最多只允许输入30个字)