如何解决调用resizeImage()后如何在transformFile()中调用“done()”函数?
我在使用 DropzoneJS 时遇到问题。这是关于方法transformFile
。我使用这种方法来计算 MD5 并生成一个预签名的上传 URL 到 S3。
当我不必调整图像大小时它效果很好,但是当我必须这样做时,Dropzone 不会继续上传 - 它只生成 MD5 和预签名 URL。我知道我应该调用 done()
函数,但我不确定如何在我的情况下执行此操作。
这是我的实现:
transformFile: async function transformFile(file,done) {
if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) {
//return this.resizeImage(file,this.options.resizeWidth,this.options.resizeHeight,this.options.resizeMethod,done);
return this.resizeImage(file,async function (result) {
file.md5 = await calculateMD5(result);
file.presign = await initUpload(file.name,file.type,file.md5);
return result;
});
} else {
file.md5 = await calculateMD5(file);
file.presign = await initUpload(file.name,file.md5);
return done(file);
}
},
这里是 Dropzone 的原版:
transformFile: function transformFile(file,done) {
if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) {
return this.resizeImage(file,done);
} else {
return done(file);
}
},
我特别需要在此方法中或稍后执行此操作,但我很确定这是我生成 MD5 和预签名 URL 的最后可能时刻。任何帮助将不胜感激。
解决方法
void foo() {
std::cout << "Hello," //
<< "world!" //
<< std::endl; //
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。