如何在压缩后下载 BLOB

How to download BLOB after compression

我使用 dropzone.js 和图像压缩器库。但我很难下载 blob。任何建议我该怎么做。下面是我的代码

// "myDropzone" is the camelized version of the HTML element's ID
Dropzone.options.myDropzone = {
 url:" ",
  transformFile: function(file, done) {
     const imageCompressor = new ImageCompressor();

     imageCompressor.compress(file, {
     // I assume the output image won't have the meta data anymore
     checkOrientation: true,
     // Limit output image width & height
     // For controllable file size & avoid blank output image
     // https://github.com/xkeshi/image-compressor#maxwidth
     maxWidth: 8192,
     maxHeight: 8192,
     // 0.8 is the default and already good enough
     quality: 0.6,
     // Convert ALL PNG images to JPEG
     convertSize: 0,
     })
     .then((result) => {
       // Handle the compressed image file.
       done(result)
console.log(result);

     })
     .catch((err) => {
       // Handle the error
       throw err
     })
  }
};

我尝试创建一个下载 link 并下载“结果”,但我得到了损坏的文件

我自己找到了解决方案。我制作了 blob 的 ObjectURL,然后我创建了一个“a”元素

    const url = window.URL.createObjectURL(result);
    const a = document.createElement('a');
    a.style.display = 'none';
    a.href = url;
    // the filename you want
    a.download = result.name;
    document.body.appendChild(a);
    a.click();
   window.URL.revokeObjectURL(url);