reactjs - MERN+ Cloudinary:不支持的源 URL
问题描述
我正在尝试将文件上传到cloudinary。这是我的反应组件的一部分
...
addItem() {
...
let file = this.fileInput.value;
keywords !== "" && this.props.onAddItem(keywords, place, image);
...
}
render() {
return (
....
<Input
type="file"
innerRef={(input) => {this.fileInput = input}}
name="image"
id="image"
placeholder=""/>
)
}
这是动作文件:
export function onAddItem(keywords, place, file, id, isChangebale = false) {
return (dispatch) => {
axios.all([
axios.post('https://api.cloudinary.com/v1_1/myservername/image/upload',
{upload_preset: "mypresetname", file: file}),
axios.post('http://localhost:3001/api/items/', { keywords, place, id, isChangebale })
])
.then(axios.spread((cloudinaryRes, localRes) => {
console.log(cloudinaryRes, localRes);
}))
我收到错误xhr.js:178 POST https://api.cloudinary.com/v1_1/testovich/image/upload 400 (Bad Request)
并在响应标头中"X-Cld-Error: Unsupported source URL: C:\fakepath\2017-12-07_19-06-445.png"
当我使用邮递员进行测试时,我得到了正确的响应。
所以看起来我在将文件从 rect 组件传递到操作文件时做错了。如何将正确的路径/文件传递给 cloudinary?
解决方案
有两个错误:1.在react组件中应该有
let file = this.fileInput.files[0];//I upload only one file
代替
let file = this.fileInput.value;
在行动文件中
导出函数 onAddItem(keywords, place, image, id, isChangebale = false) { const formData = new FormData(); formData.append("文件", 图片); formData.append("upload_preset", "mypresetname");
return (dispatch) => { axios.all([ // AJAX 上传请求使用 Axios ) axios.post(' https://api.cloudinary.com/v1_1/myservername/image/upload ', formData,
代替:
export function onAddItem(keywords, place, file, id, isChangebale = false) {
return (dispatch) => {
axios.all([
axios.post('https://api.cloudinary.com/v1_1/myservername/image/upload',
{upload_preset: "mypresetname", file: file}),
推荐阅读
- vscode-settings - 启动时关闭所有 vscode 选项卡
- python - 在比较python中的两列时计算字符串的出现
- r - 在 R 中导入 CSV 的字符串列中使用 #(井号标签)时出现问题
- java - 未知字符上的java正则表达式匹配器异常
- php - GuzzleHttp6 和 GuzzleHttp7 在同一个项目中
- css - 如何为 Telerik Angular 标签设置宽度
- variables - Prolog,未知参数解决
- javascript - 匹配查询不存在错误:“__.models.__.DoesNotExist:__ 匹配查询不存在。”
- python - 用条件连接熊猫细胞的最pythonic方法
- azure - 强制隧道快速路线