【发布时间】:2019-10-17 05:16:59
【问题描述】:
我有一个只接受图像的简单输入文件。我想在上传任何小于 2mb 大小的图像时显示成功消息。但是当我选择图像并检查元素时,图像正在转换为 base64 格式,并且 base64 字符串的大小超过(4/3 比率)图像的实际大小。
我的问题是
1.如何保持与实际图片大小一致?
2. 有没有其他办法解决。
我的代码是:
<input type="file" onchange="uploadImage(event)" />
jQuery
function uploadImage(event){
var fileReader = new FileReader();
if (fileReader && fileList && fileList.length) {
$scope.fileSize = fileList[0].size;
fileReader.readAsDataURL(fileList[0]);
var ext = fileList1.value.match(/\.([^\.]+)$/)[1].toLowerCase();
switch (ext) {
case 'jpg':
case 'bmp':
case 'png':
case 'tif':
case 'jpeg':
$scope.hasInvalidFiles = false;
fileReader.onload = function (event) {
var imageData = event.target.result;
console.log(imageData);
}
if (fileList[0].size < 2000) {
console.log("success");
}
else {
console.log("Failure");
}
break;
default:
console.log("Invalid");
}
}
}
【问题讨论】:
-
转换为 base64 总是会增加文件大小,因为字节中使用的位更少
标签: jquery html image jquery-file-upload