React Native图像保存到php(laravel)服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native图像保存到php(laravel)服务器相关的知识,希望对你有一定的参考价值。

我正在尝试使用React Native将图像保存到php应用程序(由laravel 6.0制作)中。这是我的反应本机图像选择器

var ImagePicker = NativeModules.ImageCropPicker;

这是我的图像保存功能

addImages = async () => {
    const { image, images } = this.state
    const access_token = await AsyncStorage.getItem('access_token')

    try {

        let data = new FormData();

        images.map((image, i) => {
            data.append('id', id);
            data.append('uri', image.uri);
            data.append('type', image.mime);
            data.append('name', 'test.jpg');
        });

        fetch(apiConfig.apiUrl + '/api/save-image', {
            method: 'POST',
            headers: {        
                'Content-Type' : 'multipart/form-data',
                'Authorization': 'Bearer ' + access_token,
            },
            body:data
        })
            .then(function (response) {
                return response.json();
            })
            .then(function (data) {

                try {
                   console.log(data);                      

                } catch (error) {                     
                    console.log(error);
                }
            }.bind(this))
            .catch((error) => {
                console.log(error)
            });
    }catch (error) {
        console.log(error)
    }
}

这是我的PHP代码

public function saveImage(Request $request)
{
    header( "Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE");
    header("Access-Control-Allow-Origin: *");

    try {
        $file= array('file'=>$request->uri);
        Storage::disk('public')->put($request->imgName,File::get($file->file));

        return response()->json(['true'=>'Successfully Created'], 200);
    } catch (Exception $e) {
        Log::info('vehicle image: ', [$e->getMessage()]);
        return response()->json(['error'=>$e], 200);
    }
}

[当我尝试保存时,我得到了SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

当我返回$request->uri时,我得到的是这样的file:///data/user/0/com.carup/cache/react-native-image-crop-picker/IMG_20191103_161929.jpg

我该如何解决?

我该如何解决?

答案

您需要将文件名指定为data.append的第三个参数:

data.append('file', image.uri, 'test.jpg');

以上是关于React Native图像保存到php(laravel)服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 react-native-camera 将捕获的图像保存到自定义应用程序特定文件夹

React-native-android - 如何将图像保存到Android文件系统并在手机的“图库”中查看

React Native - 图像缓存

React Native 将捕获的图像和视频保存到我设备上的自定义文件夹中

React Native:无需图像保存和预览的实时相机数据

将视频保存到 CameraRoll React-Native