我想上传一张图片从反应本机到PHP Symfony服务器。我用ImagePicker.showImagePicker挑选图片并用RNFetchBlob.fetch发送,但Symfony中的文件似乎是空的。$ file ->getMimeType()返回“文件不存在或不可读”,文件的内容类型为octet-stream。它应该是image/jpeg。
有什么想法吗?感谢您的帮助:)
PHP代码:
private function uploadFile(Request $request, $actualFilename = null)
{
$file = $request->files->get('userfile');
var_dump($file->getMimeType());
}React-native代码:
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);
});
});
});发布于 2020-05-21 16:43:44
您需要传递图像数据,因此在服务器中您将获得一个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
https://stackoverflow.com/questions/58139481
复制相似问题