Jquery+Aajax 批量上传
注:转载请标明文章原始出处及作者信息
网上有现成的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 批量上传的更多相关文章
- jquery文件批量上传控件Uploadify3.2(java springMVC)
人比較懒 有用为主 不怎么排版了 先放上Uploadify的官网链接:http://www.uploadify.com/ -->里面能够看到PHP的演示样例,属性说明,以及控件下载地址.分f ...
- 基于jQuery很牛X的批量上传插件
上传功能应该是每个网站必备的工具之一,因此出现了出现了很多各式各样的上传插件! 本文基于个人经验和使用从插件的:交互体验,易用性,文档,美观度出发,为大家推荐三款很NX的批量上传插件! 下面三款插件的 ...
- 带进度条的文件批量上传插件uploadify
有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案. 先上效果图: 一. 下载uploadify 从官网下载uploadify的Flash版本(Flash版本免费,另 ...
- Mvc利用淘宝Kissy uploader实现图片批量上传附带瀑布流的照片墙
前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...
- 利用uploadify+asp.net 实现大文件批量上传。
前言 现在网上文件上传组件随便一搜都是一大堆,不过看大家一般都在用uploadify这个来上传文件.由于项目需要,我在来试了一下.因为第一次使用,也遇到了很多问题,特此记录! ------------ ...
- uploadify文件批量上传
uploadify能够时间文件的批量上传,JS文件包下载地址,使用说明可以参考官网文档(http://www.uploadify.com/documentation/) 使用方法如下代码: $(&qu ...
- WEB版一次选择多个文件进行批量上传(Plupload)的解决方案
WEB版一次选择多个文件进行批量上传(Plupload)的解决方案 转载自http://www.cnblogs.com/chillsrc/archive/2013/01/30/2883648.htm ...
- KindEditor图片批量上传
KindEditor编辑器图片批量上传采用了上传插件swfupload.swf,所以后台上传文件方法返回格式应为JSONObject的String格式(注). JSONObject格式: JSONOb ...
- Mvc Kissy uploader实现图片批量上传 附带瀑布流的照片墙
前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...
随机推荐
- hihocoder1634 Puzzle Game
题目链接:(vjudge) 戳我 和上面那个matrix 比较像. 大概题意就是给你一个n*m的矩阵,然后可以选择其中一个数字进行修改(当然也可以不修改),使得矩阵的最大子矩阵尽可能小.最后输出这个值 ...
- [转]解读Unity中的CG编写Shader系列5——理论知识
经过前面的系列文章中的三个例子,尽管代码简单,但是我想应该还有些地方没有100%弄明白,我们现在得回过头来补充一些必备的数学.图形学知识 1.图形管道第一个例子中我有提到顶点着色和片段着色在整个图形绘 ...
- repo搭建
[root@op-yum01]# cat /home/work/yumdata/rsync-reposync.sh #!/bin/bash #Purpose: Sync centos7 repos v ...
- BeginEditorCommand的原理
代码来源 :http://www.arch-pub.com/problem-about-CPropertyPage_10682271.html CWnd* pAcadWnd = CWnd::FromH ...
- Objective-C中的meta-class
讨论Objective-C的一个奇怪的概念 meta-class 在Objective-C中的每个类,都有它自己相关的meta-class,但因为你很少直接使用meta-class,所以显得很神秘. ...
- linux新服务器分区挂载
新买一台服务器,需要自己手动对硬盘进行分区挂载:(这是centos下,其他版本应该也类似) 1.查看没有分区的硬盘:fdisk -l 由图上信息可知,该服务器由三块硬盘 vda.vdb.vdc,其 ...
- js 常用js正则表达式大全
一.校验数字的js正则表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字:^d{m,n}$ 5 ...
- Service与BoardcastReceive
开发service需要两个步骤: 1.定义一个继承Service的子类 2.在AndroidMainfest.xml文件中配置该Service. Service与Activity都是从Context派 ...
- bzoj3280: 小R的烦恼(最小费用最大流)
Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要 求小R帮助他一起解决一个难题.问题是这样的,程设老师最近要进行一项邪恶的实 ...
- luogu P2365 任务安排(FJOI2019 batch)
洛谷传送门 FJOI 日常原题 $2333$(似乎还不如 SDOI2012 任务安排 $2333$) 显然考虑 $dp$,这个是经典的把未来的代价先计算的 $dp$,然后才是斜率优化 一开始想状态时一 ...