我在做與反應原生的應用程序。現在我試圖從手機發送圖像到服務器(Node Js)。爲此,我使用react-native-image-picker。問題是,當我發送圖像時它保存一個文件,但它是空的不包含照片。我認爲這個問題可能是因爲在不同的設備,服務器無法訪問到圖像的路徑。但我不知道我該怎麼做。將文件發送到節點JS服務器
陣營母語:
openImagePicker(){
const options = {
title: 'Select Avatar',
storageOptions: {
skipBackup: true,
path: 'images'
}
}
ImagePicker.showImagePicker(options, (imagen) =>{
if (imagen.didCancel) {
console.log('User cancelled image picker');
}
else if (imagen.error) {
console.log('ImagePicker Error: ', imagen.error);
}
else if (imagen.customButton) {
console.log('User tapped custom button: ', imagen.customButton);
}
else {
let formdata = new FormData();
formdata.append("file[name]", imagen.fileName);
formdata.append("file[path]", imagen.path);
formdata.append("file[type]", imagen.type);
fetch('http://X/user/photo/58e137dd5d45090d0b000006', {
method: 'PUT',
headers: {
'Content-Type': 'multipart/form-data'
},
body: formdata
})
.then(response => {
console.log("ok");
})
.catch(function(err) {
console.log(err);
})
}})}
節點JS:
addPhotoUser = function (req, res) {
User.findById(req.params.id, function(err, user) {
fs.readFile(req.body.file.path, function (err, data) {
var pwd = 'home/ubuntu/.../';
var newPath = pwd + req.body.file.name;
fs.writeFile(newPath, data, function (err) {
imageUrl: URL + req.body.file.name;
user.save(function(err) {
if(!err) {
console.log('Updated');
} else {
console.log('ERROR: ' + err);
}
res.send(user);
});
});
});
});
};
謝謝!我試着第一個解決方案。我在後臺發送它很好,但在嘗試訪問映像時沒有正確保存並且沒有顯示任何內容。 –
真的發生了什麼? – Codesingh
看到我上面的答案。手機中的uri無法遠程訪問。當他試圖讀取它時,他正試圖讀取uri在手機上的圖像。 – klvs