我有这段代码:
$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。
答案 0 :(得分:1)
尝试更改此内容:
public_path() . '\\thumb\\'. $thumbnailName
对此:
public_path().DIRECTORY_SEPARATOR.'thumb'.DIRECTORY_SEPARATOR.$thumbnailName
此外,创建thumb
目录并设置正确的权限:
chmod -R 755 /public/thumb