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

  网上有现成的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. 903. Valid Permutations for DI Sequence

    We are given S, a length n string of characters from the set {'D', 'I'}. (These letters stand for &q ...

  2. 原生态js展开收缩

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. [Swift]多维数组的表示和存储:N维数组映射到一维数组(一一对应)!

    数组:有序的元素序列. 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数字编号称为下标.数组 ...

  4. php中的date和strtotime函数妙用

    php中的两个常用的日期相关函数date和strtotime,相信大家一定不陌生.但我们平时使用都只是基本功能,什么时间戳变日期格式,日期格式变时间戳. 其实这两个函数还有更深的用法: 1.date函 ...

  5. 51nod1847 奇怪的数学题 (Min_25筛+第二类斯特林数)

    link \(\sum_{i=1}^n\sum_{j=1}^n\mathrm{sgcd}(i,j)^k=\sum_{p=1}^ns(p)^k\sum_{i=1}^n\sum_{j=1}^n[\gcd( ...

  6. Hibernate 自动创建表bug问题解决

    我在hibernate.cfg.xml配置文件中添加了自动创建表的的属性:(这样当数据库中没有此表是,hibernate就会自动帮我们创建一张表) <property name="hb ...

  7. c++primer 学习笔记

    1.1 编写简单的c++程序 函数4元素:函数类型.函数名.形参表.函数体 调用GNU(UNIX) g++ prog1.cc -o prog1 //生成可执行文件prog1,UNIX下默认a.out ...

  8. urllib和urllib3

    urllib库 urllib 是一个用来处理网络请求的python标准库,它包含4个模块. urllib.request---请求模块,用于发起网络请求 urllib.parse---解析模块,用于解 ...

  9. C#集合之不变的集合

    如果对象可以改变其状态,就很难在多个同时运行的任务中使用.这些集合必须同步.如果对象不能改变器状态,就很容易在多个线程中使用. Microsoft提供了一个新的集合库:Microsoft Immuta ...

  10. 【后渗透】PowerSploit

    1.下载安装:git clone https://github.com/mattifestation/PowerSploit.git 2.搭建web服务器(如172.16.12.2),将powersp ...