ЧТО Я ХОЧУ ДОСТИГНУТЬ: Я хочу сжать загруженное изображение и отправить его на сервер для загрузки.
ЧТО ПРОБЛЕМА Я ПРОХОДИТ? Все работает нормально, но изображение не сжимается. Размер изображения такой же, как и раньше.
MARKUP
<form action="./imageUpload.php" method="POST" enctype="multipart/form-data" onsubmit="formD(el)">
<input id="file" type="file" name="file">
<input type="submit" value="submit" name="submit">
</form>
<div id="dis"></div>
SCRIPT
document.getElementById("file").addEventListener("change", function (event) {
compress(event);
});
function compress(e) {
const width = 100;
const height = 100;
const fileName = e.target.files[0].name;
const reader = new FileReader();
reader.readAsDataURL(e.target.files[0]);
reader.onload = event => {
const img = new Image();
img.src = event.target.result;
img.onload = () => {
let elem = document.createElement('canvas');
elem.width = width;
elem.height = height;
let ctx = elem.getContext('2d');
ctx.drawImage(img, 0, 0, width, height);
ctx.canvas.toBlob((blob) => {
let file = new File([blob], fileName, {
type: 'image/jpeg',
lastModified: Date.now()
});
}, 'image/jpeg', 1);
},
reader.onerror = error => console.log(error);
};
}
PHP var_dump ($ _ FILES)
array (size=5)
'name' => string 'fruit.jpg' (length=9)
'type' => string 'image/jpeg' (length=10)
'tmp_name' => string 'C:\wamp64\tmp\php2C53.tmp' (length=25)
'error' => int 0
'size' => int 135454 //This is the actual size so compression is not happening