在文件夹内创建图像会导致创建名为folder / image.jpg的图像

时间:2016-08-28 12:50:09

标签: php laravel ubuntu intervention

我有这段代码:

    $file = $faker->image($dir = public_path().'/tmp', $width = 800, $height = 600, '', true);
    $hash = str_random(7);
    $thumbnailName = $hash . '.jpg';
    $thumbnailImage = ImgResizer::make($file)->fit(180, 180);
    $thumbnailImage->save( public_path() . '\\thumb\\'. $thumbnailName);
    rename($file, 'public/'.$hash.'.jpg');

如您所见,我正在使用faker来填充数据库。 Faker也支持图像,它从lorempixel.com获取图像。我将此图像直接保存在公共文件夹中并且有效。我还使用InternventionImage创建了图像的缩略图,并将其保存到public / thumb文件夹中,如代码所示。

当我运行db:seed时,没有产生错误,一切顺利。但是,当我在拇指文件夹里面看时,那里没有文件。在公共文件夹中创建了一堆图像,但没有在拇指内部创建。我登录服务器并进入默认文件夹并键入ls,我得到了这个输出:

正如您在图像上看到的,那里有一堆public/thumb/hashcode.jpg图像。这怎么可能,它们不在thumb文件夹中,为什么要在那里列出它们?脚本是否创建了文件名为public/thumb/hashcode.jpg的文件?如何将它们放在拇指文件夹中?此代码适用于apache2和php7下的本地计算机窗口10。

1 个答案:

答案 0 :(得分:1)

尝试更改此内容:

public_path() . '\\thumb\\'. $thumbnailName

对此:

public_path().DIRECTORY_SEPARATOR.'thumb'.DIRECTORY_SEPARATOR.$thumbnailName

此外,创建thumb目录并设置正确的权限:

chmod -R 755 /public/thumb