首页 > 解决方案 > Sightengine api 返回 fopen(): 文件名不能为空

问题描述

我正在使用视觉引擎来检查图像质量。我希望用户用他们的手机拍摄图像,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);
    }
}

标签: phplaravelimagevue.js

解决方案


推荐阅读