Mat*_*aNg 11 javascript blob image amazon-s3 cordova-plugins
我一直在努力解决这个问题,我会尽可能多地向你提供信息(有些可能无关紧要),因为我完全陷入困境.我正在使用Ionic,我希望能够用我的手机拍照并将其上传到AWS S3存储桶.我用Cordova相机来完成这个任务.
我所知道的; 这些图片以大型base64字符串形式出现,我必须将其转换为Blob,将其转换为File对象,然后将该文件对象上传到AWS.但是,当我这样做时,它总是将其上传为图像之外的其他内容.每当我打开它时,我都会收到错误消息:
"Not a valid bitmap file. its format is not currently supported."
Run Code Online (Sandbox Code Playgroud)
https://s3.amazonaws.com/mng-moment/moment/PA/40.008446_-75.26046_1502414224619.jpg
这是一个WORKING的示例(这曾经以某种方式工作):
https://s3.amazonaws.com/mng-moment/bestMoments/40.008446_-75.26046_1499659199473.jpg
我试图在文本编辑器中打开每个文件,看看发生了什么.对于第一个(破碎的)我得到这个:
当我尝试在文本编辑器中打开工作时,我得到这个:
现在它似乎是转换问题,但我认为我正在正确转换它.这是我用来上传的代码(您可以稍后在帖子上看到console.logs):
core.js
awsServices.js
如果您查看代码中的注释,我会标记一些控制台日志.我将在这里显示它们以获取更多信息:
A - (uploadToAWS):
B - (awsServices.upload):
这就是我将dataURI转换为Blob的方法(在uplpoadToAWS中调用 - 第一个截图):
如果有更多信息,请告诉我.我一直在摸不着头脑.任何帮助表示赞赏.谢谢!
正如MDN 文件 API中所述:
File 对象是 Blob 的一种特定类型,可以在 Blob 可以使用的任何上下文中使用。特别是,FileReader、URL.createObjectURL()、createImageBitmap() 和 XMLHttpRequest.send() 都接受 Blob 和文件。
所以,我认为你的问题在于你的uploadToAws函数,因为你首先创建一个 Blob,然后使用 Blob 创建一个文件,而我认为你应该使用dataURItoBlob返回的字节数组初始化 File 对象,因为 File 对象位于事实上已经是一个 Blob 对象了。
| 归档时间: |
|
| 查看次数: |
256 次 |
| 最近记录: |