我使用 jquery 插件来裁剪图像。该插件将裁剪图像并将其作为 Base64 编码字符串提供给我。为了将其上传到 S3,我需要将其转换为文件并将该文件传递到上传函数中。我怎样才能做到这一点?我尝试了很多事情,包括使用解码字符串atob
。没有一个起作用。
这是裁剪插件('croppie')的代码,它为我提供了编码字符串:
imageCropper.croppie('result', {
type: 'canvas',
size: 'viewport',
format: 'jpeg'
}).then(function (resp) {
updateAvatar(resp);
});
我将它传递给一个名为的函数updateAvatar
。这是 updateAvatar 函数:
updateAvatar({Meteor, Slingshot}, avatar) {
const uploader = new Slingshot.Upload('userAvatarUpload');
uploader.send(avatar, function (error, downloadUrl) {
if (error) {
// Log service detailed response.
console.error('Error uploading', uploader.xhr.response);
console.log(error);
}
else {
console.log('uploaded', downloadUrl);
}
});
}
uploader.send 函数需要一个文件或一个 url。它不会接受我的编码字符串。
我用来上传文件到S3的插件:https://github.com/CulturalMe/meteor-slingshot https://github.com/CulturalMe/meteor-slingshot