蚂蚁分类信息系统PC端扫码传图插件

PC端微信扫码传图,方便手机中的图片直接上传到电脑端。
实现效果图
在这里插入图片描述
在这里插入图片描述

相关代码 核心JS实现思路

  var upV =1;
var upW=586; 
var upH=781; 
var upZip=0.8; 
var upi=0;
function upInit(V,X,F) {
	try {
		document.write("<canvas style=\"display:none\" id=\"canvas\"></canvas><span id=\"image-up\" style=\"position:relative;display:inline-block;width:72px;height:24px;line-height:24px;text-align:center;color:#333;background-color: #eee;border: 1px solid #999;border-radius:4px;margin-right:15px;cursor:pointer;\" onMouseOut=\"this.style.textDecoration='none';\" onMouseOver=\"this.style.textDecoration='underline';\"><input type=\"file\" name=\"file\" id=\"file\" style=\"position:absolute;width:72px;height:24px;opacity:0;filter: alpha(opacity=0);z-index:2;top:0px;left:0px;text-indent:-999px;cursor:pointer;overflow:hidden;\" ");

		if (is_canvas() && navigator.userAgent.toLowerCase().indexOf("chrome")!=-1) {
			document.write(" accept=\"image/gif,image/jpeg,image/jpg,image/png,image/bmp\" multiple=\"multiple\" οnchange=\"up(this.files);\"");
		} else {
			document.write(" accept=\"image/gif,image/jpeg,image/jpg,image/png,image/bmp\" οnchange=\"up1(this.files);\"");
		}
		document.write("/>上传图片</span>");
	}catch (e) {}
	document.write("<a style=\"position: relative;display:inline-block;width:72px;height:24px;line-height:24px;text-align:center;color:#333;background-color: #eee;border: 1px solid #999;border-radius:4px;\" href=\"javascript:openWindow('/wxup.php?id='+$find('tid').value,'微信上传图片',300,280)\">微信传图</a>");
	if(V>0){document.write(" <font color=#888888> (可上传"+V+"张,图片小于"+Math.round(X/1024*100)/100+"M)</font><input type=\"hidden\" name=\"files\" id=\"files\" size=65 value=\"\"><br /><ul id=\"upfile_ul\" style=\"float:left;width:440px;height:auto;margin:5px 0;overflow:hidden;clear:both;display:none;\"></ul>");}

	upV = V;
	if (F.length > 0) {
		$find("files").value = F;
		if (window.addEventListener) {
			window.addEventListener("load", uplist, false);
		} else if (window.attachEvent) {
			window.attachEvent("onload", uplist);
		} else {
			window.onload = uplist;
		}
	}
	
}
function vv_t() {
$find("vv").innerHTML=upV;
	setTimeout(vv_t,700);
}

function uplist() {
  if($find("files").value.length>4){  
	  var ps=$find("files").value.split("|");
	  $find("upfile_ul").style.display = "block";
	  for (var i = 0; i <ps.length; i++) {if(ps[i].length>4){addli(i,ps[i]);}}
	  upi=i;
    }
}
function addli(id, v) {
        var upId = "upload_" + id;
		var u= v.length<5?"/template/default/upload/image/uping.gif":""+v,li_html;
		li_html = string.Format('<input type="hidden" id="img{0}" name="img[{0}]" value="{1}"><img id="pic_{0}" src="{2}" width="100" height="75" /><br /><a href="javascript:px({0},0);" class="c888">&laquo;</a><a href="javascript:delimg({0});" style="margin:0 20px;">删除</a><a href="javascript:px({0},1);" class="c888">&raquo;</a>',id,v,u);
		if(!$find(upId)){
		var spanOBJ = document.createElement("li");
		spanOBJ.id = upId;
		spanOBJ.style.styleFloat = "left";
		spanOBJ.style.cssFloat = "left";
        spanOBJ.style.marginRight = "10px";
		spanOBJ.style.textAlign="center";
		spanOBJ.innerHTML =li_html;
        $find("upfile_ul").appendChild(spanOBJ);
		}else{$find(upId).innerHTML = li_html;}
}

function px(id,lx) {
var hid;
var lis = $find("upfile_ul").childNodes;
if(lis.length>1){
	if(lx>0){
	   for (var i=0;i<lis.length;i++ ){   
		  hid=parseInt(lis[i].id.replace(/upload_/i, ''));
	      if (hid>id){break;}
		}
		if(hid==id){hid=parseInt(lis[0].id.replace(/upload_/i, ''))}
	}else{ 
	   for (var i=lis.length-1;i >= 0; i--){   
		  hid=parseInt(lis[i].id.replace(/upload_/i, ''));
	      if (hid<id){break;}
		}
		if(hid==id){hid=parseInt(lis[lis.length-1].id.replace(/upload_/i, ''))}
	}
	$find("files").value=$find("files").value.replace($find("img"+id+"").value+"|","@hid").replace($find("img"+hid+"").value+"|",$find("img"+id+"").value+"|").replace("@hid",$find("img"+hid+"").value+"|");
	$find("upfile_ul").innerHTML="";uplist();
	}
}

function delimg(id) {
    var uls=$find("upfile_ul").childNodes.length-1;
	if ($find("img"+id+"").value.length>0){
	    $find("files").value=$find("files").value.replace($find("img"+id+"").value+"|","");
		Ajax("/mini.php?abc=del&tp="+$find("img"+id+"").value,function(o){});
	   }
	$find("upfile_ul").removeChild($find('upload_'+id));
	if (uls==0){$find("upfile_ul").style.display = "none";}
}


var myfiles=null;//全局缓存
function up(files) {
	var uls=$find("upfile_ul").childNodes.length;
	var selectLength = files.length;
	var tip = "最多只能选择"+upV+"张图片";
if (uls+selectLength>upV) {
	 	if(upV-uls>0 && uls>0){
			 tip = tip + ",还可以选择"+(upV-uls)+"张图片.";
		}
		alert(tip);
		return;
	}
myfiles=files;
for (var i=0;i<myfiles.length;i++)
{
	if (myfiles[i].type.match(/^image\/(jpeg|jpg|jfif|pjp|pjpeg|heif|heic|bmp|gif|png)$/i) && myfiles[i].name.match(/\.(jpeg|jpg|jfif|pjp|pjpeg|heif|heic|bmp|gif|png)$/i)) {
		if (uls>=upV) {
			alert("最多只能上传"+upV+"张图片");
			break;
		}
		setTimeout("up2(" + i + ")",i*666);
		uls++;
	} else {
		alert("仅支持jpg/gif/bmp/png图片");
	}
  }
}

//单文件上传
function up1(files) {
if ($find("upfile_ul").childNodes.length>=upV) {
		alert("还可上传0张图片");
		return;
	}
	$find("upfile_ul").style.display = "block";

	var m = $find("upfile_ul").childNodes.length;
	if(m > 0){upi = parseInt($find("upfile_ul").childNodes[m-1].id.replace(/upload_/i, '')) + 1;}


	var gxi = upi;
		upi++;
		addli(gxi, "");	
				var formData = new FormData();
				formData.append("file", files[0]);
                
				var _xml = XmlHttp();
				_xml.open("POST", "/mini.php?w="+upW+"&h="+upH+"&Atime=" + new Date().getTime(), true);
				_xml.send(formData);
				_xml.onreadystatechange = function() {
					if(_xml.readyState == 4) {
						if(_xml.status >= 200 && _xml.status < 300 || _xml.status == 304) {
							var str=unescape(_xml.responseText);
							if(str.indexOf(".")!=-1){
		$find("files").value += str + "|";
		setTimeout(function(){addli(gxi, str);},300);
							}else{
						delimg(gxi);
						}
					}
				}
}

var upts="";
function up2(i) {
		$find("upfile_ul").style.display = "block";
		//upi = $find("upfile_ul").childNodes.length;
		var m = $find("upfile_ul").childNodes.length;
		if(m > 0){upi = parseInt($find("upfile_ul").childNodes[m-1].id.replace(/upload_/i, '')) + 1;}

		var gxi = upi;
		upi++;
		addli(gxi, "");		
			var img = new Image();
			img.id="myimg_"+i;
            img.crossOrigin = "Anonymous";
			img.onload = function() {
				var width = img.width,
					height = img.height,
					scale = width / height;
				if (width > upW || height > upH) {
					if (width > height) {
						width = parseInt(upW);
						height = parseInt(width / scale)
					} else {
						scale = height / width;
						height = parseInt(upH);
						width = parseInt(height / scale);
					}
				}
				var canvas = $find("canvas");
				canvas.width = width;
				canvas.height = height;
				var ctx = canvas.getContext("2d");
				ctx.clearRect(0, 0, width, height);
				ctx.drawImage(img, 0, 0, width, height);
				var base64 = canvas.toDataURL("image/jpeg", upZip);
				base64 = base64.replace(/^data:image\/(jpeg|jpg|jfif|pjp|pjpeg|heif|heic|bmp|gif|png);base64,/i, "");
				Ajax("/mini.php?abc=h5&w="+upW+"&h="+upH, function(o) {
					if (o.indexOf(".jpg") > -1 || o.indexOf(".jpeg") > -1 || o.indexOf(".png") > -1 || o.indexOf(".gif") > -1) {
						$find("files").value += o + "|";
						console.log($find("files").value);
						setTimeout(function(){addli(gxi, o);},300);
					} else {
						console.log("cuowu");
						delimg(gxi);
						if(o!=upts){alert(o);}
						upts=o;
					}
				}, ''+i);
			}
			img.src = webkitURL.createObjectURL(myfiles[i]);
}

function file_complete(tp){ 	
	$find("upfile_ul").style.display = "block";
	var m = $find("upfile_ul").childNodes.length;
	if(m >= upV) {
		alert('最多可以上传'+upV+'张图片');
		return;}
	var newN = 1;
	if(m > 0){newN = parseInt($find("upfile_ul").childNodes[m-1].id.replace(/upload_/i, '')) + 1;}
    //addli(newN+1,"");
   if(tp.length>4){	
	  $find("files").value+=tp+"|";
      addli(newN,tp)
	}
}

function is_canvas(){
    var elem = document.createElement('canvas');
    return !!(elem.getContext && elem.getContext('2d'));
}
















string = {};
string.Format = function () {
	var param = [];
	for (var i = 0, length = arguments.length; i < length; i++) {
		param.push(arguments[i]);
	}
	var format = param[0];
	param.shift();
	return format.replace(/\{(\d+)}/g, function (m, i) {
		return param[i];
	});
}


var is_ie = (navigator.userAgent.toLowerCase().indexOf("msie") != -1);
function $find(d) { return document.getElementById(d); }
function $n(d) { return document.getElementsByName(d); }
function isk(ids) { return typeof ids == 'undefined' ? true : false; }
function ietruebody() { return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body; }





function openWindow(_sUrl, sTitle, width, height, lx, bj) {
	if (!_sUrl) {
		return;
	}
	if (isk(sTitle)) {
		sTitle = "";
	}
	if (isk(width)) {
		width = 560;
	}
	if (isk(height)) {
		height = 420;
	}
	if (isk(lx)) {
		lx = 0;
	}
	if (isk(bj)) {
		bj = 0;
	}

	var oEdit = new dialog(sTitle, width, height, bj);
	oEdit.init();
	_sUrl += (_sUrl.indexOf("?") == -1 ? "?" : "&") + "Atime=" + new Date().getTime();
	oEdit.open(_sUrl, lx);
}


function dialog(sTitle, width, height, bj) {
	var sBox = '<div onMouseDown="new dialog().moveStart(event);" id="dialogBox_title" ><span id="dialogBox_title_l"></span><img src="/template/default/upload/image/jst_close.gif" title="关闭窗口" οnclick="new dialog().reset();">' + sTitle + '<span id="dialogBox_title_r"></span></div><div id="dialogBody" style="height:' + height + 'px;">loading...</div>';
	this.reset = function () {
		$find("dialogBox").style.display = "none";
		if ($find("dialogBj")) {
			$find("dialogBj").style.display = "none";
		}
	};
	this.init = function () {
		if (bj == 2) {
			sBox = sBox.replace("<img src=\"/template/default/upload/image/jst_close.gif\" title=\"关闭窗口\" οnclick=\"new dialog().reset();\">", "");
		}
		if ($find("dialogBox")) {
			$find("dialogBox").style.display = "block";
			$find("dialogBox").style.width = width + "px";
			$find("dialogBox").innerHTML = sBox;
		} else {
			var oDiv = document.createElement("div");
			oDiv.id = "dialogBox";
			oDiv.style.width = width + "px";
			oDiv.innerHTML = sBox;
			document.body.insertBefore(oDiv, document.body.childNodes[0]);
		}
		this.middle("dialogBox");
		if (bj > 0) {
			if ($find("dialogBj")) {
				$find("dialogBj").style.display = "block";
			} else {
				var bjDiv = document.createElement("div");
				bjDiv.id = "dialogBj";
				bjDiv.style.width = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth) + "px";
				bjDiv.style.height = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) + "px";
				document.body.insertBefore(bjDiv, document.body.childNodes[0]);
			}
		}
	};
	this.open = function (_sUrl, lx) {
		switch (lx) {
			case 4:
				$find("dialogBody").innerHTML = _sUrl;
				break;
			case 3:
				$find("dialogBody").innerHTML = "<OBJECT classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=100% height=100%><PARAM NAME=SRC VALUE=\"" + _sUrl + "\"><PARAM NAME=CONSOLE VALUE=\"" + _sUrl + "\"><PARAM NAME=CONTROLS VALUE=imagewindow><PARAM NAME=AUTOSTART VALUE=1></OBJECT>";
				break;
			case 2:
			case 1:
				$find("dialogBody").innerHTML = "<embed src=\"" + _sUrl + "\" width=\"100%\" height=\"100%\" border=\"0\"></embed>";
				break;
			case 9:
			case 0:
				var isscrolling = lx == 9 ? "auto" : "no";
				$find("dialogBody").innerHTML = "<div id=\"Jst_Iframe_Ts\"><img src=\"/template/default/upload/image/ing2.gif\" /></div><iframe width=\"100%\" id=\"Jst_Iframe\" height=\"100%\" frameborder=\"0\" scrolling=\"" + isscrolling + "\"></iframe>";
				var Jst_Iframe = $find("Jst_Iframe");
				Jst_Iframe.src = _sUrl;
				if (Jst_Iframe.attachEvent) {
					Jst_Iframe.attachEvent("onload", function () {
						$find("Jst_Iframe_Ts").style.display = "none";
					})
				} else {
					Jst_Iframe.onload = function () {
						$find("Jst_Iframe_Ts").style.display = "none";
					}
				}
				break;
		}
	};
	this.moveStart = function (event) {
		var oObj = $find("dialogBox");
		if (document.attachEvent) {
			oObj.attachEvent("onmousemove", mousemove);
			oObj.attachEvent("onmouseup", mouseup);
			oObj.attachEvent("onlosecapture", mouseup);
			oObj.setCapture();
		} else {
			document.addEventListener("mousemove", mousemove, true);
			document.addEventListener("mouseup", mouseup, true);
		}
		var oEvent = event || window.event;
		var deltaX = oEvent.clientX - oObj.offsetLeft;
		var deltaY = oEvent.clientY - oObj.offsetTop;

		function mousemove(event) {
			var oEvent = event || window.event;
			oObj.style.left = parseInt(oEvent.clientX - deltaX) + "px";
			oObj.style.top = parseInt(oEvent.clientY - deltaY) + "px";
		}
		function mouseup() {
			if (document.attachEvent) {
				oObj.detachEvent("onmousemove", mousemove);
				oObj.detachEvent("onmouseup", mouseup);
				oObj.detachEvent("onlosecapture", mouseup);
				oObj.releaseCapture();
			} else {
				document.removeEventListener("mousemove", mousemove, true);
				document.removeEventListener("mouseup", mouseup, true);
			}
		}
	};
	this.middle = function (_sId) {
		$find(_sId).style.left = parseInt((ietruebody().clientWidth / 2) - ($find(_sId).offsetWidth / 2)) + "px";
		var sClientHeight = ietruebody().clientHeight;
		var sScrollTop = document.body.scrollTop + document.documentElement.scrollTop;
		var sTop = (sClientHeight / 2 + sScrollTop) - ($find(_sId).offsetHeight / 2);
		$find(_sId).style.top = parseInt(sTop > 0 ? sTop : (sClientHeight / 2 + sScrollTop) - ($(_sId).offsetHeight / 2)) + "px"
	}
}


function XmlHttp() {
	return window.ActiveXObject ? new window.ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
}
function Ajax(u, cmd, data, t, cmd2) {
	u += (u.indexOf("?") > -1 ? "&" : "?") + "Atime=" + new Date().getTime();
	var _xml = XmlHttp();
	var _t = isk(t) ? 600000 : t;
	var _isAsync = _t == 0 ? false : true;


	if (isk(data) || data.toLowerCase() == "get") {
		_xml.open("GET", u, _isAsync);
		_xml.send(null);
	} else {
		_xml.open("POST", u, _isAsync);
		var formData = new FormData();
		formData.append('file', $('#file')[0].files[data]);
		formData.append('id',$find('tid').value);
		formData.append('m',$find('upload_m').value);
		_xml.send(formData);
		//_xml.send(data);
	}
	if (_isAsync) {
		var cleaeTO = setTimeout(function () {
			_xml.abort();
			if (!isk(cmd2)) {
				cmd2();
			}
		}, _t < 250 ? 250 : _t);
		_xml.onreadystatechange = function () {
			if (_xml.readyState == 4) {
				if (_xml.status == 200) {
					clearTimeout(cleaeTO);
					cmd(_xml.responseText);
				}
			}
		}
	} else {
		if (_xml.readyState == 4) {
			if (_xml.status == 200) {
				cmd(_xml.responseText);
				_xml = null;
			}
		}
	}
}

 

蚂蚁分类信息系统分类信息源码里值得推荐的一款,源码包含四色模板(蓝、绿、橙、红)、3种风格(分类、门户、行业),并含有WAP端,推荐做本地分类信息类站点使用。MayiCMS功能简介:1,整合在线支付接口如支付宝,财付通,网银支付/京东钱包接口。2,支持手机端支付宝在线充值3,支持手机端微信在线充值4,支持微信登录,微信公众号绑定5,支持手机发送验证码6,手机信息列表展示·无分页上拉刷新7,负载强,易维护,易拓展,程序和模板完全分离8,增加百度提交网站地图索引文件sitemap.xml的功能9,支持QQ一键登录10,会员注册发布信息IP及地域限制:可限制注册会员及发布信息所在地11,可限时分类置顶以及首页置顶(包括手机版),会员可自行操作,扣除的金币数也可在后台设置。12,可自助对信息进行刷新操作(包括手机版),扣除的金币数也可在后台设置。13,整合地图标注接口设置(包括 baidu,51ditu,google地图)14,后台可以设置各种类型的网站广告,并且可设置不同页面显示不同的广告15,分类信息栏目支持多级分类,可对指定栏目进行多级细分16,支持所有分类栏目自定义拼音伪静态规则,如http://demo1.mayicms.com/fang/17,支持站内和站外双重调用,后台可按自定义条件生成调用代码,实现在任意网页自由调用网站信息18,系统安装后自带有团购,新闻,商品,优惠券等功能插件,可在后台按需开启或关闭19,各栏目分类信息模型选项字段完全自定义,支持价格等数字输入型字段检索20,可限制信息发布者的手机号21,可设置不同分类信息查看联系方式需要登录或者需要付费22,不同栏目分类信息介绍页可设置使用不同的模板23,蚂蚁蓝,赶集绿,58橙,天猫红四种颜色主题自由切换(包括手机版)24,数据和网页双重缓存,在缓存数据的基础之上增加支持网页整体缓存功能25,微信等各类小程序和APP支持环境要求:php5.4 + mysql5 + zend安装步骤:1,将程序文件上传至服务器空间上(LINUX服务器注意二进制上传)2,在浏览器执行 http://你的域名/install/index.php 进入安装蚂蚁分类信息系统5.9最新版升级说明:1,PC前端模板增加悬浮QQ客服,微信客服图标的显示2,修正当个人会员升级为机构会员后级别变成新手上路的问题3,后台首页增加审核机制,方便审核所有网站的信息,会员,新闻,友情链接等模块内容4,会员中心首页增加不同等级会员的权限对照表,一目了然,5,PC端首页和列表页模板增加格子类型模板风格6,增加手机信息页以及商家页分享微信分享朋友圈的功能7,信息分类列表页的标题改进8,修正手机版里输入框检测重复时,窗口不停弹出无法关闭的BUG9,修正违禁词语出现后信息不自动转待审的问题10,增加手机端找回用户密码的功能11,手机号增加14,16,19等新号段支持12,增加手机版分类信息的前端举报和收藏功能13,修正部分主机环境下支付宝支付充值成功但未实际到帐的BUG14,修正新闻的数据调用排序错误的BUG15,修复部分主机环境下微信支付漏洞16,增加手机端会员自助升级会员组的功能17,改进部分主机环境下IP识别不准确的BUG18,修正部分主机环境下短信发送漏洞19,修正手机安卓系统中操作首页,主图标下拉手势自动触发链接的BUG20,百度标注地图标注优化,增加地址检索的功能21,修复部分主机环境下用户中心SQL注入漏洞22,改进IP地址识别代码,精确度提升至99.99#,商家增加营业时间功能设置24,增加微信登录/QQ登录的用户需要手机实名认证才能发信息的功能25,手机版首页和列表页改进为无分页上拉刷新效果26,手机版发布界面体验改进27,手机版全面支持URL伪静态28,手机版首页增加微信二维码客服,公众号订阅显示,方便微信用户订阅,增加用户黏性29,手机版修正部分主机环境下分享不显示图标和内容的BUG30,手机版首页和信息列表页的信息增加点赞和收藏功能31,手机版模板全新风格全新设计32,支持完整全套微信支付接口(增加微信扫码支付,微信手机H5支付,不再局限必须手机微信内部访问才可以支付)33,全新的用户中心模板模板设计34,增加短信宝短信接口通道支持35,商家功能改进36,增加百度提交网站地图索引文件sitemap.xml的功能37,增加支持APP封装38,增加支持微信小程序39,修复微信扫码登录在PC端,IE等浏览器模式下不能正常登录的BUG40,增加后台分类信息修改浏览次数的功能41,会员中心全面升级改进,用户体验更好更方便42,不同会员组增加每天信息发布数量上限,信息发布总数上限,机构文章发布上限,相册上传上限的功能43,多城市版改进后台的分站下拉框筛选形式,操作更为人性化更为简便
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值