1.首先展示ajaxfileupload代码,在这里修改为批量上传

//ajaxfileupload不展示全部代码,这是修改前与修改后代码对比,目的是上传多个文件

 createUploadForm: function (id, fileElementId, data) {
//create form
var formId = 'jUploadForm' + id;
var fileId = 'jUploadFile' + id;
var form = jQuery('<form action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');
if (data) {
for (var i in data) {
jQuery('<input type="hidden" name="' + i + '" value="' + data[i] + '" />').appendTo(form);
}
}
//修改前代码-------
// var oldElement = jQuery('#' + fileElementId);
// var newElement = jQuery(oldElement).clone();
// jQuery(oldElement).attr('id', fileId);
// jQuery(oldElement).before(newElement);
// jQuery(oldElement).appendTo(form);
//修改前代码------- //修改后代码-------
for (var i in fileElementId) {
var oldElement = jQuery('#' + fileElementId[i]);
var newElement = jQuery(oldElement).clone();
jQuery(oldElement).attr('id', fileId);
jQuery(oldElement).before(newElement);
jQuery(oldElement).appendTo(form);
}
//修改后代码------- //set attributes
jQuery(form).css('position', 'absolute');
jQuery(form).css('top', '-1200px');
jQuery(form).css('left', '-1200px');
jQuery(form).appendTo('body');
return form;
},

2.展示js代码 (里面layer为第三方插件忽略改为alert即可)

//检查尺寸是否符合规范
function uploadImgCheckedPx(f, w, h, callback) {
var reader = new FileReader();
reader.onload = function (e) {
//判断图片尺寸
var img = null;
img = document.createElement("img");
document.body.insertAdjacentElement("beforeend", img);
img.style.visibility = "hidden";
img.src = this.result;
var imgwidth = img.naturalWidth;
var imgheight = img.naturalHeight;
if (imgwidth != w || imgheight != h) {
document.body.removeChild(img);
//隐藏
layer.closeAll('loading');
layer.alert("图片尺寸必须是" + w + "x" + h + "!");
callback && callback(false);
} else {
callback && callback(true);
}
}
var files = f.files;
if (files.length > 0)
reader.readAsDataURL(files[0]);
}
//上传图片到百度云(这里是向后台提交文件,然后后台进行上传百度云等云服务器)
function uploadImgBack(inputArray, callback) {
$.ajaxFileUpload
({
url: "/Handler/ImgFileUpload.ashx", //用于文件上传的服务器端请求地址
async: true,
secureuri: false, //一般设置为false
//fileElementId: 'uploadfile1', //修改前代码
fileElementId: inputArray, //已数组方式存储 input Id
dataType: 'json', //返回值类型 一般设置为json
//不能用success,否则不执行
complete: function (data) {
try { data = jQuery.parseJSON(data.responseXML.documentElement.innerText); } catch (e) { data = jQuery.parseJSON(data.responseXML.documentElement.textContent); }
if (data.state == "0") {
callback && callback(data.msg);
} else {
//隐藏
layer.closeAll('loading');
layer.alert(data.msg);
callback && callback(-1);
}
}
});
}
//上传图片
/*
inputArray 上传inputId 数组
callback 成功后回调函数
w, px宽
h, px高
*/
function uploadImg(inputArray, callback, w, h) {
if (w && h) {
var resStateArray = [];
for (var i = 0; i < inputArray.length; i++) {
var f = document.getElementById(inputArray[i]);
uploadImgCheckedPx(f, w, h, function (state) {
resStateArray.push(state);
});
}
var tempInterval = setInterval(function () {
console.log(resStateArray);
if (resStateArray.length == inputArray.length) {
clearInterval(tempInterval);
if (resStateArray.indexOf(false) != -1) {
callback && callback(-1);
} else {
uploadImgBack(inputArray, function (res) {
callback && callback(res);
});
}
}
}, 500);
} else {
uploadImgBack(inputArray, function (res) {
callback && callback(res);
});
}
}

3.展示html 调用js封装代码进行提交

<input type="file" name="name" id="uploadBigImg1" hidden onchange="preImg(this.id,'BigImg1');" readonly datatype="*" nullmsg="请选择图片!" />
<input type="file" name="name" id="uploadBigImg2" hidden onchange="preImg(this.id,'BigImg2');" readonly />
<input type="file" name="name" id="uploadBigImg3" hidden onchange="preImg(this.id,'BigImg3');" readonly />
  var imgBigArrar = [];
imgBigArrar.push("uploadBigImg1");
imgBigArrar.push("uploadBigImg2");
imgBigArrar.push("uploadBigImg3");
//调用Js
uploadImg(imgBigArrar, function (res) {
if (res != -1) {
//res 是上传完成的云资源
//
}
}, 1242, 496);
//1242 宽,496高 不加即为不限制尺寸大小
//后台C# 代码接收请求
public class ImgFileUpload : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain"; string path = "";
string msg = "";
if (path.LastIndexOf('/') != path.Length - ) path += "/"; var files = HttpContext.Current.Request.Files;
//do something ....
}
}

ajaxfileupload批量上传文件+图片尺寸限制的更多相关文章

  1. TP3.2批量上传文件(图片),解决同名冲突问题

    1.html <form action="{:U('Upload/index')}" enctype="multipart/form-data" meth ...

  2. 【转】JQuery插件ajaxFileUpload 异步上传文件(PHP版)

    前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现a ...

  3. JQuery插件ajaxFileUpload 异步上传文件(PHP版)

    太久没写博客了,真的是太忙了.善于总结,进步才会更快啊.不多说,直接进入主题. 前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错 ...

  4. 百度编辑器ueditor批量上传图片或者批量上传文件时,文件名称和内容不符合,错位问题

    百度编辑器ueditor批量上传附件时,上传后的文件和实际文件名称错误,比如实际是文件名“dongcoder.xls”,上传后可能就成了“懂客.xls”.原因就是,上传文件时是异步上传,同时进行,导致 ...

  5. Linux命令之rz - 批量上传文件,简单易用(转载)

    用途说明 rz命令能够批量上传文件,当然也可上传单个文件啦.使用的协议是古老的ZMODEM协议,尽管协议古老,但毫不影响的简单易用的特性.一般情 况我们要上传文件到Linux系统,要么使用ftp(还得 ...

  6. 转 Android网络编程之使用HttpClient批量上传文件 MultipartEntityBuilder

    请尊重他人的劳动成果,转载请注明出处:Android网络编程之使用HttpClient批量上传文件 http://www.tuicool.com/articles/Y7reYb 我曾在<Andr ...

  7. 不带插件 ,自己写js,实现批量上传文件及进度显示

    今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是 ...

  8. Python基于Python实现批量上传文件或目录到不同的Linux服务器

    基于Python实现批量上传文件或目录到不同的Linux服务器   by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用方法 1 1. 编辑配置文件conf/rootpath_fo ...

  9. input file multiple 批量上传文件

    这几天维护系统,有一个批量上传文件功能,出现了一点小问题 我的笔记本选择要上传的文件很正常 但在测试环境上,别人的电脑上,选择上传文件之后 一开始,以为是代码问题,网上找了很多的资料,但还是没用,然后 ...

随机推荐

  1. MYSQL主从库同步配置过程

    MYSQL主从库同步配置过程 为了实现网站数据库的异地备份,采用了MySQL数据库主从同步配置,需要两台服务器分别作为主从库,当主库发生增删改等操作,会实时反映到从库,我的个人服务器配置如下: 主库为 ...

  2. Java - 路线图

    java语言基础 基本语法 面向对象思想 mysql数据库基础 jdbc操作 java高级技术 java集合框架 多线程 网络编程 sql深入,索引,sql优化 javaweb servlet jsp ...

  3. 前端css常用class命名id命名

    1.常用id的命名: (1)页面结构 容器: container 页头:header 内容:content/container 页面主体:main 页尾:footer 导航:nav 侧栏:sideba ...

  4. apache访问日志分析[转]

    当前WEB服务器中联接次数最多的ip地址 #netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -nr 查看日志中访问次数最多的前10个IP #c ...

  5. java常用类--字符串

    String import java.io.IOException; import java.util.Arrays; public class Linkin { public static void ...

  6. SQL模板资源管理器,你用了吗?

    SQL Server Management Studio 有个模板资源管理器,不知你用过没有?使用模板创建脚本.自定义模板等功能能大大提高你的工作效率,如果没有尝试过,赶紧去试试吧.很多时候,我们习惯 ...

  7. Cacti在selinux开启的情况下使用

    # chcon -R -t httpd_sys_content_t /var/www/html/cacti

  8. redis数据类型-散列类型

    Redis数据类型 散列类型 Redis是采用字典结构以键值对的形式存储数据的,而散列类型(hash)的键值也是一种字典结构,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他 ...

  9. [SQL] 函数整理(T-SQL 版)

    函数整理(T-SQL 版) 一.数学函数 1.求绝对值 ABS() 函数用来返回一个数值的绝对值. SELECT ABS(-5.38) AS absValue; 2.求指数 POWER()  函数是用 ...

  10. sap中Excel的模版上传和下载

    一:事物码smw0 二:上传步骤 注:"包"为项目的包的名称. 三:下载代码 l_filename = 'XX.xls'. l_muban = 'z123'. *&---下 ...