我在Heroku(雪松env)上有一个rails应用程序。它有一个页面,我使用toDataURL()
方法将画布数据渲染成图像。我试图使用JavaScript(绕过服务器端)将返回的base64图像数据字符串直接上传到s3。问题是由于这不是一个文件,我如何直接将base64编码数据上传到S3并将其保存为文件?如何仅使用JavaScript将base64编码图像数据上传到S3?
14
A
回答
23
我已经找到一种方法来做到这一点。经过大量的搜索查看不同的教程。
如果您正在处理多个文件,您必须将数据URI转换为blob,然后使用CORS将该文件上载到S3我对每个文件都有单独的XHR请求。
我发现这个功能,将你的数据URI到一个能够直接使用CORS(Convert Data URI to Blob)
function dataURItoBlob(dataURI) {
var binary = atob(dataURI.split(',')[1]);
var array = [];
for(var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
}
1
不知道OP是否已经解决了这个问题,但我正在研究一个非常相似的功能。在做一些小小的研究时,我遇到了这些可能有用的文章。
3
被上传到S3斑点如果有人关心:这里是coffescript上面给出的函数版本!
convertToBlob = (base64) ->
binary = atob base64.split(',')[1]
array = []
for i in [0...binary.length]
array.push binary.charCodeAt i
new Blob [new Uint8Array array], {type: 'image/jpeg'}
4
Jamcoope的回答非常好,但blob构造函数不被所有浏览器支持。最显着的是android 4.1和android 4.3。有Blob
polyfill,但xhr.send(...)
不适用于polyfill。最好的选择是这样的:
var u = dataURI.split(',')[1],
binary = atob(u),
array = [];
for (var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
var typedArray = Uint8Array(array);
// now typedArray.buffer can be passed to xhr.send
相关问题
- 1. 将base64图像数据上传到亚马逊S3
- 2. 将图像编码为Amazon S3的Base64
- 3. 使用AngularJS将正确编码的(base64?)图像上传到SharePoint
- 4. 使用javascript编辑base64编码图像
- 5. 如何使用图像URL将图像上传到AWS S3?
- 6. 将图像上传到S3
- 7. Swift 3 base64编码图像上传
- 8. 使用javascript将Google Base64图像上传到Google驱动器
- 9. 将base64图像上传到亚马逊s3
- 10. 用swift将图像上传到S3 3
- 11. 如何将base64编码数据转换为xcode图像
- 12. 如何正确地将base64编码图像上传到文件服务器?
- 13. 如何使用Perl将图像上传到Amazon S3?
- 14. 如何使用GraphQL将图像上传到AWS S3?
- 15. 如何使用rails,angular&paperclip将图像上传到S3
- 16. 如何使用流星将图像从FileReader上传到Amazon s3
- 17. 如何使用php webservice将图像上传到Amazon S3?
- 18. 如何使用NodeJS将图像直接上传到S3
- 19. 如何使用JavaScript获取base64编码图像的地址
- 20. 使用HttPost和HttpClient上传base64编码图像
- 21. 无法使用Codeigniter上传base64编码图像
- 22. 使用Facebook sdk上传base64编码图像?
- 23. 如何在codeigniter中上传base64编码的图像
- 24. 让用户使用JavaScript将图像上传到数据库中
- 25. 如何将base64编码的图像传递给php?
- 26. 后base64编码图像到服务器使用javascript
- 27. 如何上传图像到ASW S3
- 28. 如何将图像传输到Amazon S3
- 29. Base64编码图像
- 30. Base64编码图像