如何在压缩后下载 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);
我使用 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);