Изо всех сил пытается передать новую информацию об изображении обратно в данные формы после сжатия, используя загрузку файла jquery и compress.js - PullRequest
0 голосов
/ 19 января 2019

Я создаю загрузку изображений, которая сжимает изображение с помощью compress.js перед загрузкой с загрузкой файла jquery, но я не понимаю, как передать эту информацию о двоичном объекте обратно в данные формы, прежде чем загрузка из файла jquery отправит данные. Я работаю с компрессором и загружаю отдельно, просто не могу понять, как заставить их работать вместе.

$('#upload').fileupload({
    dropZone: $('#drop'),
    // This function is called when a file is added to the queue;
    add: function (e, data) {

        var Compressor = window.Compressor;
        var URL = window.URL || window.webkitURL;
        var output = document.getElementById('output');
        new Promise((resolve, reject) => {
            new Compressor(data.files[0], {
                quality: 0.1,
                maxHeight : 2880,
                maxWidth : 5760,
                mimeType: 'image/jpeg',
                success: resolve,
                error: reject,
            });
        }).then((result) => {
            console.log('Compress success');
            var newImage = new Image();
            newImage.src = URL.createObjectURL(result);
            newImage.alt = 'Compressed image';
            output.appendChild(newImage);

            // This is where I'm trying to update the original file 
            with the new compressed file before jquery uploader submit..

            data.formData = newImage.src;
            console.log(data);
            var jqXHR = data.submit();


        }).catch((err) => {
            console.log('Compress error');
            window.alert(err.message);
        }).finally(() => {
            console.log('Compress complete');
        });

    }
});
...