注:转载请标明文章原始出处及作者信息

  网上有现成的Uploadify、WebUpload等插件,自己写一个简单的(非插件).

  1.页面

  批量上传页面

  

 <form action="" id="formid">
@Html.Hidden("filelist")
<table>
<tr>
<td>
文件:
</td>
<td>
<div id="filediv" class="filediv"></div>
</td>
</tr>
<tr>
<td>
文件:
</td>
<td>
<input type="file" id="file" name="wfile" accept=".pdf" onchange="upload();" multiple="multiple" />
选择文件 <span style="padding:5px;color:red;" id="scts">未选择文件</span>
</td>
</tr>
</table>
</form>

  美化上传按钮

  

    <a href="javascript:" style="display:inline-block; width:100px;padding:5px; background:#007dce; position:relative; overflow:hidden;color:white;text-align:center;border-radius:4px;">
<input style="cursor:pointer;position:absolute; right:0; top:0; font-size:100px; opacity:0;" type="file" id="file" name="wfile" accept=".pdf" onchange="upload();" multiple="multiple" />
选择文件
</a>

  文件列表

  

 .filediv {
height: 100px;
background-color: burlywood;
overflow-x: hidden;
overflow-y: auto;
}

  2.脚本

  选择文件

  

 function upload() {
//获得已选文件集合
var fs = document.getElementById("file").files;
//元素数据
var fsarray = $("#filelist").data("data");
if (fsarray) {
//添加新选择的文件
$.each(fs, function (i, v) {
if (fsarray.indexOf(v.name) == -) {
fsarray.push(v);
$("#filediv").append("<div data-name='" + v.name + "' class='xdiv'>" + v.name + "<span onclick='delpdf(this)'>X</span></div>");
}
})
}
else {
fsarray = new Array;
$.each(fs, function (i, v) {
fsarray.push(v);
$("#filediv").append("<div data-name='" + v.name + "' class='xdiv'>" + v.name + "<span onclick='delpdf(this)'>X</span></div>");
})
//向元素附加已选择的数据
$("#filelist").data("data", fsarray);
}
$("#scts").css("color", "green").text("已选择" + fsarray.length + "个文件");
}

  删除文件

  

 function delpdf(obj) {
var ar = $("#filelist").data("data");
ar.splice(ar.indexOf("data-name"), );
$(obj).parent().remove();
$("#scts").css("color", ar.length == ? "red" : "green").text("已选择" + ar.length + "个文件");
}

  3.上传

  

   if (!$("#formid").validate().form()) return false;
var fd = new FormData($("#formid")[]);
if ($("#wfile").outerHTML) {
$("#wfile").outerHTML = $("#wfile").outerHTML;
} else {
$("#wfile").value = "";
}
for (var i = ; i < $("#filelist").data("data").length; i++) {
fd.append("filelist[]", $("#filelist").data("data")[i])
}
$.ajax({
url: "/home/ManuscriptAdd",
type: "post",
dataType: "json",
data: fd,
processData: false,
contentType: false,
success: function (data) {
if (data.state == "") {
$.jBox.tip("上传成功", "success");
window.location.reload();
}
else {
$.jBox.tip(data.content, "error");
}
},
error: function (xhr) {
$.jBox.closeTip();
}
})

  

Jquery+Aajax 批量上传的更多相关文章

  1. jquery文件批量上传控件Uploadify3.2(java springMVC)

    人比較懒  有用为主 不怎么排版了 先放上Uploadify的官网链接:http://www.uploadify.com/  -->里面能够看到PHP的演示样例,属性说明,以及控件下载地址.分f ...

  2. 基于jQuery很牛X的批量上传插件

    上传功能应该是每个网站必备的工具之一,因此出现了出现了很多各式各样的上传插件! 本文基于个人经验和使用从插件的:交互体验,易用性,文档,美观度出发,为大家推荐三款很NX的批量上传插件! 下面三款插件的 ...

  3. 带进度条的文件批量上传插件uploadify

    有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案. 先上效果图: 一. 下载uploadify 从官网下载uploadify的Flash版本(Flash版本免费,另 ...

  4. Mvc利用淘宝Kissy uploader实现图片批量上传附带瀑布流的照片墙

    前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...

  5. 利用uploadify+asp.net 实现大文件批量上传。

    前言 现在网上文件上传组件随便一搜都是一大堆,不过看大家一般都在用uploadify这个来上传文件.由于项目需要,我在来试了一下.因为第一次使用,也遇到了很多问题,特此记录! ------------ ...

  6. uploadify文件批量上传

    uploadify能够时间文件的批量上传,JS文件包下载地址,使用说明可以参考官网文档(http://www.uploadify.com/documentation/) 使用方法如下代码: $(&qu ...

  7. WEB版一次选择多个文件进行批量上传(Plupload)的解决方案

    WEB版一次选择多个文件进行批量上传(Plupload)的解决方案  转载自http://www.cnblogs.com/chillsrc/archive/2013/01/30/2883648.htm ...

  8. KindEditor图片批量上传

    KindEditor编辑器图片批量上传采用了上传插件swfupload.swf,所以后台上传文件方法返回格式应为JSONObject的String格式(注). JSONObject格式: JSONOb ...

  9. Mvc Kissy uploader实现图片批量上传 附带瀑布流的照片墙

    前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...

随机推荐

  1. linux 修改主机名 【root@主机名 ~】

    centos 7修改方式: hostnamectl  set-hostname   hostuser reboot 或者直接vi /etc/hostname 添加内容: hostuser 检查修改效果 ...

  2. 【后缀数组之height数组】

    模板奉上 int rank[maxn],height[maxn]; void calheight(int *r,int *sa,int n) { ; ;i<=n;i++) rank[sa[i]] ...

  3. mysql主从同步错误,提示The server quit without updating PID file

    在安装完lnmp后,启动mysqld失败,提示 [root@centos-6 ~]# service mysqld start Starting MySQL [确定][root@centos-6 ~] ...

  4. 极光大数据告诉你,程序员们都在"愁"些啥?

    有言道:隔行如隔山.面对不甚熟悉的人群和岗位,我们很容易在固有印象的干扰下,作出一些偏离实际的解读.比如在很多外行人眼中,程序员群体的固有形象是性格木讷,生活方式通常也比较宅.他们最大的爱好就是玩游戏 ...

  5. 简单的数字校验JS

    /** *张衍涛 * 数字校验 v:校验的元素 l:要保留的小数点位数 */ function checkNumber(v,l){ var val=v.value; if(isNaN(val) || ...

  6. PHP中SimpleXMLElement对象字符编码

    最近在使用SimpleXMLElement来生成和解析XML. 由于我们使用PHP开发的这边使用UTF-8编码,而对方使用GBK编码,因此就遇到了中文字符编码问题. 后来发现,XML内部的编码与其头 ...

  7. ubuntu下面的某些软件安装

    1. python 下面的mysql驱动:不是在pip里面安装,执行下面命令 apt-get install python-mysqldb

  8. [转]IOS应用程序多语言本地化解决方案

    最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享! 多语言在应用程序中一般有两种做法:一.程序中提供给用户自己选择的机会:二.根据当前用户当前移动设备 ...

  9. 3、激活层(Activiation Layers)及参数

    caffe激活层(Activiation Layers) 在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的.从bottom得到一个blob数据输入,运算后,从top输入 ...

  10. 动手玩转Docker(一)

    在学习docker之前,先了解一下什么是docker,以及docker技术存在的意义. Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上 ...