Реагируйте на собственные изображения и сохраните их на php (laravel) сервере. - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь сохранить изображение в php-приложении (сделанном с laravel 6.0), используя React Native. Вот мой сборщик реагирующих изображений

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

Как я могу это исправить?

Как я могу это исправить?

1 Ответ

1 голос
/ 04 ноября 2019

Вам необходимо указать имя файла в качестве третьего параметра для data.append:

data.append('file', image.uri, 'test.jpg');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...