【发布时间】:2017-08-16 07:11:40
【问题描述】:
我试图在客户端读取后减小图像的大小,javascript代码如下,我在这里遇到两个问题 1)图像预览未显示在img id“img-upload”上 2)通过表单提交“reader.readAsDataURL(input.files[0])”提交的文件不是缩小后的文件。
我确实尝试更改代码以将阅读器移动到图像 onload 中,然后传递 e.target.files[0] 但这也不起作用。
请告知我如何调整大小,然后通过表单提交将其发送到我的后端。
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#img-upload').attr('src', e.target.result);
img.onload = function () {
var MAX_WIDTH = 100;
var MAX_HEIGHT = 100;
var width = img.width;
var height = img.height;
if (width > height) {
if (width > MAX_WIDTH) {
height *= MAX_WIDTH / width;
width = MAX_WIDTH;
}
} else {
if (height > MAX_HEIGHT) {
width *= MAX_HEIGHT / height;
height = MAX_HEIGHT;
}
}
var canvas = document.createElement("canvas");
canvas.width = width;
canvas.height = height;
canvas.getContext("2d").drawImage(this, 0, 0, width, height);
img.src = e.target.result;
$('#img-upload').append(img);
}
}
reader.readAsDataURL(input.files[0]);
}
}
【问题讨论】:
-
你的
img变量指向什么
标签: javascript html form-submit filereader image-resizing