将图片URI上传至Cloudinary

3
我已经查看了Cloudinary API和NodeJS上传示例,发现服务器端的上传需要使用文件路径,而客户端的上传则需要前端输入标签。我已经为用户提供了一个前端界面,让他们选择并裁剪自己喜欢的图片,这会给我一个数据URI。我想将这个文件保存到Cloudinary,而不必使用他们内置的前端选项。这种情况是否可行?这基本上意味着我可以调用一些可以接受URI或文件blob的上传函数。
1个回答

7
Cloudinary支持使用data-URI编码字符串上传文件。请确保按照此处的说明将内容发送为Data-URI。
例如,在Node.js中:

cloudinary.uploader.upload("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", function(result) {console.log(result)});


它给了我一个错误 http_code : 400 message : "缺少必需参数 - file" - Akhil P
我无法在我的端上重现这个问题,以上代码对我来说是有效的。请分享更多信息,例如您的Cloudinary SDK版本、您使用的确切代码以及其他可能相关的信息。或者,您可以打开一个支持工单,Cloudinary的支持团队随时乐意提供帮助。 - Itay Taragano
搜索了好几个小时才找到这个。他们应该对此进行文档化。 - kittu
实际上,这已经在KBs部分有记录:https://support.cloudinary.com/hc/en-us/articles/203125741-Can-I-upload-using-DATA-URI-BASE64- - Itay Taragano
你好,你有没有想法最终请求会是什么样子?我想使用 fetch 实现这个功能,但文档对于实际应该发送的请求并不清楚。 - Eric Burel
你只需要确保数据已经被转义。这里是一个无签名上传的curl示例:curl "https://api.cloudinary.com/v1_1/mycloudname/image/upload?upload_preset=mypreset&file=data%3Aimage/gif%3Bbase64%2CR0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"。请注意,有签名的上传需要在服务器端生成签名,因为它基于你账户的api_secret,不应该出现在客户端代码中。 - Itay Taragano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接