Laravel干预NotReadableException仅在登台服务器

时间:2016-07-07 23:08:57

标签: php image laravel upload intervention

我正在开发一个使用干预图像库的Laravel应用程序。成功开发图像上载系统后,我在登台服务器上遇到了问题。当我上传图片时,我收到以下异常:

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但是我将有关图像的信息保存到我的数据库中,所以我已经有了一个同名的模型。

2 个答案:

答案 0 :(得分:1)

您是否检查过图片实际已上传?例如,您的暂存环境可能不允许上传大小。

答案 1 :(得分:0)

我遇到了同样的问题,在本地服务器上一切正常,但是在DigitalOcean进行部署时,我收到了相同的消息,我通过使用php artisan storage创建符号链接来解决了该问题:DigitalOcean Project中的链接。

解决了。您可以在文档中进行检查。 https://laravel.com/docs/5.7/filesystem