i'm trying to upload an image to cloudinary using axios
and react
. I have two functions. One for appending the formData, and the other for making a request
// APPEND CLOUDINARY DETAILS
export function appendCloudinaryDetails(fileUrl){
let formData = new FormData();
formData.append("api_key", 'APIKEYHERE');
formData.append("api_secret", 'APISECRETHERE');
formData.append("file", 'fileUrl');
formData.append("cloud_name", fileUrl);
formData.append("upload_preset", "rhi2i6xg");
return formData;
}
// STORE THE DATA ON CLOUDINARY
export function storeOnCloudinary(formData){
return () => {
return axios.post("https://api.cloudinary.com/v1_1/my-company/image/upload", formData,{
headers: { "X-Requested-With": "XMLHttpRequest", "Allow-Control-Allow-Origin": "*" },
});
}
}
And this is how i use it:
// Append Cloudinary Details
let formData = appendCloudinaryDetails(this.state.backdropCroppedImageUrl);
// Store the backdrop on Cloudinary
this.props.storeOnCloudinary(formData).then(
response => {
...
}
);
But running this gives me a 400
error response. As shown below:
I don't know if this is a faithful copy of your code, or it was changed in order to hide sensitive information in the posted question, but according to it, you are appending to the formData the backdropCroppedImageUrl
as the 'cloud_name' instead of setting it on 'file', and in 'file' you're setting a string.