我想将图片从react-native上传到PHP Symphony服务器。我使用ImagePicker.showImagePicker选择图片,并使用RNFetchBlob.fetch发送图片,但是在Symfony中,该文件似乎为空。 $ file-> getMimeType()返回“文件不存在或不可读”,并且文件的内容类型为八位字节流。应该是图片/ jpeg。
有什么想法吗? 感谢您的帮助:)
PHP代码:
private function uploadFile(Request $request, $actualFilename = null)
{
$file = $request->files->get('userfile');
var_dump($file->getMimeType());
}
本机代码:
const options = {
title: 'Select Photo',
takePhotoButtonTitle: "Take photo title",
chooseFromLibraryButtonTitle: "Choose a photo",
quality: 1
};
ImagePicker.showImagePicker(options, response => {
deviceStorage.getItem('jwt').then(jwt => {
const endpoint = 'someEndpoint'
RNFetchBlob.fetch('POST', endpoint, {
Authorization : "Bearer " + jwt,
otherHeader : "foo",
'Content-Type' : 'multipart/form-data',
}, [
{ name : 'userfile', filename : 'image.jpg', type:'image/jpeg', data: response.data}
]).then((resp) => {
console.log(resp);
}).catch((err) => {
console.log(err);
});
});
});
答案 0 :(得分:0)
您已经传递了图像数据,因此在服务器中获得base64,以检索图像,例如:
private function uploadFile(Request $request, $actualFilename = null){
$base64Image = $request->get('userfile');
$data = base64_decode($base64Image);
file_put_contents($imagePath, $data);
}
$ imagePath是保存图像的位置。
如果您使用vichuploader管理图像,请在这里base64-image-to-image-file-with-symfony-and-vichuploader