上传到cloudary API -无效的文件参数
Uploading to Cloudinary API - Invalid file parameter
我正在努力将cloudary与我的React Native应用程序集成,当我使用cloudary API进行上传时,我遇到了一个问题。我使用React Native Image Picker从相机胶卷中选择一个图像,并使用它获得一个源uri -示例如下。
我从cloudary得到一个错误响应,我不确定它指的是什么。"Invalid file parameter. Make sure your file parameter does not include '[]'"
当我使用调试器时,我可以控制台注销我在请求体中发送的所有参数。任何建议将非常感激!
source.uri: /Users/IRL/Library/Developer/CoreSimulator/Devices/817C678B-7028-4C1C-95FF-E6445FDB2474/data/Containers/Data/Application/BF57AD7E-CA2A-460F-8BBD-2DA6846F5136/Documents/A2F21A21-D08C-4D60-B005-67E65A966E62.jpg
async postToCloudinary(source) {
let timestamp = (Date.now() / 1000 | 0).toString();
let api_key = ENV.cloudinary.api;
let api_secret = ENV.cloudinary.api_secret
let cloud = ENV.cloudinary.cloud_name;
let hash_string = 'timestamp=' + timestamp + api_secret
let signature = CryptoJS.SHA1(hash_string).toString();
let upload_url = 'https://api.cloudinary.com/v1_1/' + cloud + '/image/upload'
try {
let response = await fetch(upload_url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
file: {
uri: source.uri,
type: 'image/jpeg'
},
api_key: api_key,
timestamp: timestamp,
signature: signature
})
});
let res = await response.json();
console.log(res);
} catch(error) {
console.log("Error: ", error);
}
}
所以我现在有base64编码工作,我认为,但我仍然得到相同的错误。
var wordArray = CryptoJS.enc.Utf8.parse(source.uri);
var file = CryptoJS.enc.Base64.stringify(wordArray);
try {
let response = await fetch(upload_url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
file: {
uri: file,
type: 'image/jpeg;base64'
},
api_key: api_key,
timestamp: timestamp,
signature: signature
})
});
所以我传入的源数据格式不正确。我能够从ImagePicker插件中传递它,我使用它作为一个已经格式化的数据URI (ImagePicker示例有两种方法来捕获源文件,我使用了错误的一个)。我能够摆脱CryptoJS的东西,简单地通过file: source.uri
如果您正在使用axios,请确保在请求头中包含{'X-Requested-With': 'XMLHttpRequest'}
。如:
const uploadAgent = axios.create({
baseURL: 'https://api.cloudinary.com',
headers: {
'X-Requested-With': 'XMLHttpRequest'
}
});
- 如何使用JavaScript粘贴原始二进制文件而不出现“无效字符”错误
- 数组在手动写入时有效,但从文本文件加载时无效
- 在Rails中使用remote:true在Chrome中有效,但在Safari中无效——从js.erb文件调用succe
- js.erb文件中提供给RegExp构造函数的标志无效
- Apache poi XSSF创建Excel文件-Create返回格式或文件扩展名无效的空文件
- 异步HTTP(ajax)请求在脚本标记中有效,但在js文件中无效
- 当SVG是单独的文件时,剪辑路径/web工具包掩码有效,但在内联时无效
- Jquery文件大小验证无效
- 无效文件的 Blueimp 文件上传错误消息
- 包括来自外部文件的jQuery,有些函数有效,有些则无效
- 如何删除在 Ajax文件上传上出现无效格式的默认警报
- 我不断得到空白值和无效文件
- 将包含内容和元数据的文件上传到谷歌文档会返回400无效/错误请求
- document.write在appendChild添加的Javascript文件中无效
- HTML5异步文件上传,上传的流总是无效的
- 内联javascript有效,但外部文件无效
- 脚本在html中有效,但在javascript文件中无效
- 如何获取XML文件中节点的值.代码无效
- 当用户以javascript上传无效文件时,清除输入文件字段
- 使用jQuery表单插件上传文件-无效文件错误