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组件. ...
随机推荐
- php swoole扩展安装
一波三折. 首先下载swoole安装包(由于我这里php是7,所以说应该去官网下载最新的swoole包,否则会发生意想不到的错误) wget https://github.com/swoole/swo ...
- BAT机器学习面试1000题系列(41-45题)
41.线性分类器与非线性分类器的区别以及优劣 如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是.常见的线性分类器有:LR,贝叶斯分类,单层感知机.线性回归常见的非线性分类器: ...
- 四、Centos linux系统优化
1. 无论是哪个版本的linux,都会提供32位和64位的两个版本的镜像. i386为32位 x86_64为64位 两者的区别: 1)目标:需要大量的内存需求的行业为64位,普通用户的需求为3 ...
- exec和xargs
参考:http://www.cnblogs.com/itxdm/p/5936907.html 一. 先复习下find命令 1. name参数 find -name tom 或 find -iname ...
- leetcode-119-Pascal's Triangle II(生成某一行的帕斯卡三角形)
题目描述: Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle ...
- poi操作Excel并修改单元格背景色
废话不多说,直接来代码!!! 其中标红的才是重点!!! 代码中有时可以不用创建新文件, 如果报错的话可以通过创建新文件来进行操作(懒,没去找报错原因),不过原文件也会被修改. 操作之前做好备份!操作之 ...
- centos的 / ~ - 的意思
. 当前目录 .. 上一层目录 - 前一个工作目录,上一次操作的目录 cd - 会切换都上次你操作的目录 ~ 当前[用户]所在的家目录/ root的根目录
- 洛谷 P4234 最小差值生成树(LCT)
题面 luogu 题解 LCT 动态树Link-cut tree(LCT)总结 考虑先按边权排序,从小到大加边 如果构成一颗树了,就更新答案 当加入一条边,会形成环. 贪心地想,我们要最大边权-最小边 ...
- V1-bug Alpha阶段测试报告
发现的Bug Bug现象 Bug原因 是否解决 访问到错误的视图 路由正则写的太过宽泛 是 主题太长时超过页面宽度,导致超过顶部的宽度 / 否 无法使用域名访问服务器 后端没有在配置文件的ALLOWE ...
- SpringBoot学习(一)
一.Spring Boot Spring是JavaEE轻量级代替品.无需开发重量级的(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的POJO对 ...