Hello everyone i am using Axios with React-Native-image-crop-Picker for image upload to Node.js , but i am unable to upload the files getting error [Error: Network Error]
Everything okay with my Node.js code it is working with postman fine, but there is something wrong with my react-native code.Please once check the code .
React-Native code
async upload_File() {
if (this.validate_Fields()) {
const { image, images, video, files, description, user_id } = this.state;
if (this.state.type === 'image/jpeg') {
console.log('upload_ files ::: ', files);
console.log('upload_ files ::: ', files);
const formData = new FormData();
formData.append('description', description);
formData.append('user_id', user_id);
for (let i = 0; i < files.length; i++) {
formData.append("files[]", files[i]);
}
axios.post(API_URL + '/fileuploadapi/uploadPost', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
.then((response) => {
console.log(JSON.parse(JSON.stringify(response.status)));
this.cleanupImages();
Alert.alert('Upload Post Successfully ' + '');
})
.catch((error) => {
console.log(error);
Alert.alert('image Upload Post Failed , Try again !');
});
}
if (this.state.type === 'video/mp4') {
console.log('upload_ files ::: ', files);
axios.post(API_URL + '/fileuploadapi/uploadPost', {
description: description,
user_id: user_id,
files: image,
headers: {
'Content-Type': 'multipart/form-data',
},
})
.then((response) => {
console.log(JSON.parse(JSON.stringify(response.status)));
this.cleanupImages();
Alert.alert('Upload Post Successfully ' + '');
})
.catch((error) => {
console.log(error);
Alert.alert('Video Upload Post Failed , Try again !');
});
}
}
}
Backend code :
router.post('/uploadPost', upload.array("files[]", 12), function (req, res, next) {
if (!req) {
return res.status(500).json({ error: err });
} else {
console.log('Upload files:=> ', req.files)
console.log('body', req.body)
var user_id = req.body.user_id;
var description = req.body.description;
var sql = "INSERT INTO posts ( user_id, description ) VALUES ( ' " + user_id + " ', ' " + description + "' )";
connection.query(sql, (err, results, fields) => {
if (!err) {
for (var i = 0; i < req.files.length; i++) {
var post_id = results.insertId;
var file_name = req.files[i].originalname;
var type = req.files[i].mime;
var size = req.files[i].size;
var saved_name = req.files[i].filename;
var file_path = req.files[i].path;
var sql_files = "INSERT INTO files ( post_id, user_id, file_name, mimetype, size, saved_name, file_path ) VALUES ( '" + post_id + "' , '" + user_id + "', '" + file_name + "', '" + type + "', '" + size + "', '" + saved_name + "', '" + file_path + "' )";
connection.query(sql_files, (err, rows, fields) => {
if (!err) {
console.log({ 'originalname': file_name, 'uploadname': saved_name });
} else {
console.log(err);
}
});
}
return res.json({ "status": 200, "error": null, 'success': 'post Uploaded Successfully ', "response": "success" });
} else {
console.log(err);
return res.status(500).send({ 'error': 'post not uploaded' });
}
});
}
});
If anything wrong in my code lease let me know .