上一篇文章http://blog.csdn.net/itmyhome1990/article/details/36396291介绍了ajaxfileupload实现多文件上传,

但仅仅是固定的文件个数,假设需求不确定是多少文件 则我们就须要动态的加入文件上传框。以实现灵活性。

基于上篇基本框架是不变的,主要改动下面几个方面

1、jQuery实现动态加入删除文件上传框

2、获取文件上传框的ID

3、ajaxfileupload.js里将ID数组转换为须要的Object数组

依次解决上面问题

一、实现动态加入删除文件上传框

<body><form action="" enctype="multipart/form-data"><h2>多文件上传</h2><input type="file" id="file1" name="file" /><a id="add" href="javascript:void();" οnclick="addFile();">加入</a><span><table id="down"></table></span></br><input type="button" οnclick="fileUpload();" value="上传"></form>
</body>
<script type="text/javascript">//加入附件 function addFile(){var fileLength = $("input[name=file]").length+1;var inputFile = "<div id='addFile"+fileLength+"'><input type='file' id='file"+fileLength+"' name='file' />"+"<a href='javascript:void();' οnclick='delFile("+fileLength+");'>删除</a></div>";$("#add").after(inputFile);}//删除附件function delFile(id){$("#addFile"+id).remove();}
</script>

二、获取文件上传框的ID

由于我们不知道有多少个上传框,每次加入一个上传框,其id属性都是以file1,file2方式递增的

能够用each循环拼接字符

var files = "";
//获取全部 <input type="file" id="file1" name="file" /> 的ID属性值
$("input[name=file]").each(function(){files = files + $(this).attr("id")+",";
})
//将字符最后一逗号(,)截取掉
files = files.substring(0,files.length-1);

然后我们获取的files值 如:var files = "file1,file2,file3";

能够使用console.info(typeof(files));查看files为string类型

三、ajaxfileupload.js里将ID数组转换为须要的Object数组

由于我们须要的是诸如var files = ['file1','file2','file3'];

而不是var files = "file1,file2,file3";

所以须要进行转换。事实上也未必非得在ajaxfileupload.js里进行操作

全然能够在获取ID时转换好 再传值过来。也无所谓在哪里了,方法都一样。

还是找到下面代码:

var oldElement = jQuery('#' + fileElementId);
var newElement = jQuery(oldElement).clone();
jQuery(oldElement).attr('id', fileId);
jQuery(oldElement).before(newElement);
jQuery(oldElement).appendTo(form);

在这段代码之上加入例如以下:

var t = '';
if(typeof(fileElementId) == 'string'){
/** 将传过来的值 如:"file1,file2,file3" 转换为:['file1','file2','file3']  */
var s = fileElementId.split(",");
for(var i in s){t = t +  "'"+s[i]+"'"+",";
}
t = "["+t+"]";
t = t.replace(",]", "]")
}
fileElementId= eval('('+ t +')'); //将string类型转换为Object类型

效果如图:

除了以上代码其它如struts配置,Action无需改动

项目源代码下载:http://download.csdn.net/detail/itmyhome/7589939

转载请注明出处:http://blog.csdn.net/itmyhome1990/article/details/36433621

版权声明:本文博客原创文章,博客,未经同意,不得转载。

ajaxFileUpload+struts2多文件上传(动态添加文件上传框)相关推荐

  1. php动态删除输入框,jQuery实现动态添加和删除input框实例代码

    本文实例为大家分享了jQuery实现动态添加和删除input框的具体代码,供大家参考,具体内容如下 选项 $(function(){ // 添加选项 $("#opbtn").cli ...

  2. layui 表单动态添加、删除input框

    html部分 <div class="layui-form-item" ><label class="layui-form-label"> ...

  3. Linux上传文件没有权限,添加文件权限命令

    1.进入需要被上传的目录中 cd 需要被上传的目录路径 2.获取root权限,这个命令切换用户为root,且不需要root的密码,输入当前用户的密码即可 sudo su 3.添加文件权限,-R可以让文 ...

  4. 用nero刻录视频文件的时候不能添加文件

    我用的是nero的oem版本,发现在刻录视频vcd光盘的时候,如果添加视频文件选择的是dvd视频文件的话,则不能添加文件,可能还有别的功能限制,最后安装一个Nero 7 PlugIn Pack v1. ...

  5. linux svn添加新文件夹,linux svn 添加文件夹

    安装doxygen 安装包 doxygen-1.7.4.linux.bin.tar.gz(可在官网下载) 命令: 1) tar xvfz doxygen-1.7.4.linux.bin.tar.gz ...

  6. 动态添加表格中下拉框

    父级页面 <div class="threePart"><ul><li style="width:114px"><sp ...

  7. php 多文件上传控件,php 动态多文件上传

    php 动态多文件上传 更新时间:2009年01月18日 06:01:56   作者: php 动态多文件上传实例代码,前台是javascript后台用的是php 文件上传代码 view plainc ...

  8. 静态html js文件上传,js实现动态添加上传文件页面

    发邮件是需要添加一些文件,每添加一个文件,页面上可以显示一个表单文件上传选项. 此功能为:初始时刻只有一个添加按钮,当点击添加文件时,会增加一个选择文件和删除区域,同时显示上传按钮,当点击删除,此行选 ...

  9. PHP动态多文件上传的具体代码

    PHP动态多文件上传分为两步,第一步为文件上传的代码,第二步则是文件提交的代码.希望我们通过这次的学习能加深大家所掌握的知识. AD: 大家在通过对PHP语言的学习,应该大致都可以掌握文件上传的方法. ...

最新文章

  1. vs2015更改默认项目类型
  2. cassandra生产监控_碎玻璃:诊断生产Cassandra问题
  3. Java 递归求后一个数是前两个数之和
  4. 38译码器数码管c语言代码,51单片机38译码器实现动态数码管控制
  5. hal linux 手册_Linux服务之:haldaemon服务 | 旺旺知识库
  6. 语音学习笔记3------matlab实现傅里叶反变换ifft()函数
  7. 单片机中段程序_80C51单片机中断的编程使用方法介绍
  8. 安装VS2010旗舰版时出现.Net framework4.0,安装失败
  9. 剁馅机器人图片_河南大妈开店十年卖饺子, 剁馅用上机器人, 莲菜大肉馅还真好吃...
  10. npm i安装命令中的-g -D -S的区别
  11. android 开源 高斯模糊_Android高斯模糊你所不知道的坑
  12. MLE的数值确定:Newton-Raphson迭代法、得分法
  13. 0428-Scrum团队成立
  14. 13.JVM-垃圾回收相关概念
  15. 音视频技术开发周刊 79期
  16. svn: E155007: 'XXX' is not a working copy
  17. login: Could not determine audit condition 解决方案
  18. CSS/HTML简单静态页面
  19. 信用卡透支忘还钱怎么办?
  20. 导数和积分入门笔记(持续更新)

热门文章

  1. JavaScript正则表达式使用详解
  2. 实现多国语言的Reporting Services项目
  3. 炼丹手册——梯度弥散和爆炸
  4. 用计算机弹歌我的歌声里,我的歌声里 (完整版)
  5. 内存颗粒和闪存颗粒的区别_国产闪存颗粒终于熬出头 紫光存储S100固态硬盘评测...
  6. 想不想修真鸿蒙接引码,想不想修真接引码介绍_想不想修真接引码是什么_玩游戏网...
  7. java多线程阶乘_【java学习记录】11.用多线程实现阶乘的计算过程和结果的读取(thread类ReadThread )...
  8. java数组删除数组元素_如何在Java中删除数组元素
  9. svn关键字替换_SVN关键字替换示例
  10. java设计模式工厂模式_Java中的工厂设计模式