Laravel 干预 NotReadableException "Image source not readable" 仅在登台服务器上

Laravel Intervention NotReadableException "Image source not readable" only on staging server

我正在开发一个 Laravel 应用程序,它使用了 Intervention Image Library。成功开发了一个图片上传系统后,在登台服务器上遇到了问题。当我上传图片时,出现以下异常:

NotReadableException in AbstractDecoder.php line 302:
Image source not readable
in AbstractDecoder.php line 302
at AbstractDecoder->init('/var/www/yoosit.com/public') in AbstractDriver.php line 64
at AbstractDriver->init('/var/www/yoosit.com/public') in ImageManager.php line 50
at ImageManager->make('/var/www/yoosit.com/public') in ImageManagerStatic.php line 57
at ImageManagerStatic::make('/var/www/yoosit.com/public') in ImageController.php line 90
at ImageController->upload(object(UploadImageRequest))

这是出错的代码:

$images = $request->only('image_1','image_2','image_3','image_4','image_5',
    'image_6','image_7','image_8','image_9','image_10');

foreach($images as $key => $image)
{
    // Continue loop if image input is empty.
    if ($image === null)
    {
        continue;
    }

    $interventionImage = InterventionImage::make($request->file($key)->getRealPath());

执行最后一行创建实例时抛出异常。我觉得这很奇怪,因为在我的本地环境 (Homestead) 中,我可以很好地上传图片。

我已经检查过权限,文件夹肯定是可写的。我在 DigitalOcean VPS.

上 运行 Debian 7

有什么想法吗? 提前致谢!

P.S。我是对 InterventionImage 的静态调用只是干预,通常它是 Image::make 但我将有关图像的信息保存到我的数据库中,所以我已经有了一个同名的模型。

你检查过图片是否真的上传了吗?例如,您的暂存环境可能不允许上传大小。

我遇到了同样的问题,在我的本地服务器上一切正常,但是在 DigitalOcean 中部署时我收到了相同的消息,我通过使用 php artisan 存储创建符号 link 解决了这个问题: link 在你的 DigitalOcean 项目中。

这就解决了。您可以在文档中查看它。 https://laravel.com/docs/5.7/filesystem