sightengine api возвращает fopen(): имя файла не может быть пустым

#php #laravel #image #vue.js

#php #laravel #изображение #vue.js

Вопрос:

Я использую sightengine для проверки качества изображения. Я хочу, чтобы пользователь привязал изображение к своему телефону, и sightengine проверит качество. Если я загружаю изображение из папки, оно работает нормально, и я получаю ответ API, но если я пытаюсь отправить изображение с помощью камеры телефона, оно возвращает:

fopen(): имя файла не может быть пустым

 <input type="file" accept="image/*" @change="onFileChange" capture>

 onFileChange(e){
        let form = new FormData
        form.append('file',e.target.files[0])
        axios.post('/api/drawing/checkImageQuality',form)
            .then(res=>{
            })
            .catch(e =>{
                this.isUpload = false
                this.$refs.fileInput.value = '';
                swal.fire({
                    heightAuto: false,
                    title: 'Oops',
                    text: e.response.data.message,
                    icon: 'error',
                })
            }); 
    }
  

Контроллер

 public function checkImageQuality(Request $request)
{
    $client = new SightengineClient(config('sightengine.user'),config('sightengine.key'));
    $output = $client->check(['properties'])->set_file($request->file);
    $sharpness = $output->sharpness;
    if($sharpness < 0.90){
        return response()->json(['message' => 'Image is blurry. Snap again.'], 400);
    }else{
        return response()->json(['message' => 'Image is good.'], 200);
    }
}
  

Комментарии:

1. <input type="file" accept="image/*" name="file" capture>

2. @swadhwa Я не думаю, что это проблема, потому что я получил файл на контроллере.

3. Выполните a var_dump($request->file); и посмотрите, содержит ли он то, что вы ожидаете.

4. ДА. Я получил файл. Проблема в том, что он отлично работает, когда я выбираю файл с ПК, но если я использую свой телефон, привязываю изображение и пытаюсь отправить, он возвращает ошибку. @RoAchterberg

5. можете ли вы попробовать загрузить большой файл на рабочий стол, чтобы посмотреть, сможете ли вы воспроизвести эту проблему