首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react-native-fetch-blob上载后,Symfony中的文件为空

使用react-native-fetch-blob上载后,Symfony中的文件为空
EN

Stack Overflow用户
提问于 2019-09-28 02:02:57
回答 1查看 436关注 0票数 0

我想上传一张图片从反应本机到PHP Symfony服务器。我用ImagePicker.showImagePicker挑选图片并用RNFetchBlob.fetch发送,但Symfony中的文件似乎是空的。$ file ->getMimeType()返回“文件不存在或不可读”,文件的内容类型为octet-stream。它应该是image/jpeg。

有什么想法吗?感谢您的帮助:)

PHP代码:

代码语言:javascript
复制
private function uploadFile(Request $request, $actualFilename = null)
{
        $file = $request->files->get('userfile');
        var_dump($file->getMimeType());
}

React-native代码:

代码语言:javascript
复制
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);
          });
        });
    });
EN

回答 1

Stack Overflow用户

发布于 2020-05-21 16:43:44

您需要传递图像数据,因此在服务器中您将获得一个base64,以检索图像,例如:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58139481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档