#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. можете ли вы попробовать загрузить большой файл на рабочий стол, чтобы посмотреть, сможете ли вы воспроизвести эту проблему