私は反応ネイティブでアプリケーションをやっています。今では、モバイルからサーバーに画像を送信しようとしています(ノードJ)。このため私は反応ネイティブイメージピッカーを使用しています。そして問題は、画像を送信するとファイルを保存するが、写真は含まれていないということです。私は、おそらく問題は、別のデバイスにあるため、サーバーがイメージのパスにアクセスできないということだと思います。しかし、私はそれがどうやってできるのか分かりません。モバイルからノード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