function _addImgFileListener(obj, fun)
{
$(obj).change(function ()
{
try
{
var file = this.files[0];
var reader = new FileReader();
reader.onload = function ()
{
var img = new Image();
img.src = reader.result;
img.onload = function ()
{
var w = img.width, h = img.height;
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
$(canvas).attr({
width: w,
height: h
});
ctx.drawImage(img, 0, 0, w, h);
var base64 = canvas.toDataURL('image/jpeg', 0.5);
var result = {
url: window.URL.createObjectURL(file),
base64: base64,
clearBase64: base64.substr(base64.indexOf(',') + 1),
suffix: base64.substring(base64.indexOf('/') + 1, base64.indexOf(';')),
};
fun(result);
}
}
reader.readAsDataURL(this.files[0]);
} catch (e)
{
_showMsg(e);
}
});
{
$(obj).change(function ()
{
try
{
var file = this.files[0];
var reader = new FileReader();
reader.onload = function ()
{
var img = new Image();
img.src = reader.result;
img.onload = function ()
{
var w = img.width, h = img.height;
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
$(canvas).attr({
width: w,
height: h
});
ctx.drawImage(img, 0, 0, w, h);
var base64 = canvas.toDataURL('image/jpeg', 0.5);
var result = {
url: window.URL.createObjectURL(file),
base64: base64,
clearBase64: base64.substr(base64.indexOf(',') + 1),
suffix: base64.substring(base64.indexOf('/') + 1, base64.indexOf(';')),
};
fun(result);
}
}
reader.readAsDataURL(this.files[0]);
} catch (e)
{
_showMsg(e);
}
});
}
$(document).ready(function(){
_addImgFileListener("#uploadimg",function(data)
{
//你的业务
}
);
})
<input type="file" class="uploading" name="file" id="uploadimg" accept="image/jpg,image/jpeg,image/gif,image/png">
本文介绍了一种使用JavaScript处理用户上传的图片文件的方法。该方法通过读取文件为Base64编码,创建图片对象并获取尺寸信息,然后将图片绘制到Canvas上,最后返回包含原始URL和Base64编码的图片数据。
1410

被折叠的 条评论
为什么被折叠?



