87,904
社区成员
发帖
与我相关
我的任务
分享
var files = {};
function previewImage(selector, obj, callback) {
/// <summary>绑定图片预览</summary>
/// <param name="selector" type="String">jQuery选择器</param>
/// <param name="obj" type="Object">选项</param>
/// <param name="callback" type="Function">回调函数</param>
if (files[selector]) return;
var file = document.createElement("input");
file.type = "file";
file.style.display = "none";
file.accept = "image/*";
files[selector] = file;
$(file).change(function (e) {
if (e.target.value == "") return;
var file = e.target.files[0];
if (typeof obj == "object") {
if (obj.filesize && file.size > obj.filesize) return alert("您选择的文件大小为:" + Math.floor(file.size / 1024) + "k\r\n单张图片大小不能超过" + Math.floor(obj.filesize / 1024) + "k");
}
var img = new Image(), url = img.src = URL.createObjectURL(file);
var $img = $(img);
img.onload = function () {
URL.revokeObjectURL(url);
callback({
image: img,
fileElement: file,
fromElement: fromEl
});
}
e.target.value = "";
});
var fromEl = null;
$(document.body).append(file);
$(selector).click(function () {
fromEl = this;
file.click();
});
}
previewImage(".click", {filesize: 102400}, function(e){
document.body.appendChild(e.img);
});
<div class=".click">点我点我</div>
自己手写的代码,可能会有什么小BUG,请及时与我联系。