在文件夹中创建图像会导致创建名称为 folder/image.jpg 的图像
creating image inside a folder results in creating an image with name folder/image.jpg
我有这段代码:
$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 获取图像。我将这张图片直接保存在 public 文件夹中,这样就可以了。我还使用 InternventionImage
创建图像的缩略图并将其保存到 public/thumb 文件夹,如您在代码中所见。
当我运行 db:seed时,没有产生任何错误,一切顺利。但是,当我查看 thumb 文件夹时,那里没有文件。在 public 文件夹中创建了一堆图像,但不在 thumb 中。我登录服务器并 cd 进入默认文件夹并输入 ls,我得到了这个输出:
正如您在图片上看到的那样,那里有一堆 public/thumb/hashcode.jpg
图片。这怎么可能,它们不在 thumb 文件夹中,为什么要把它们列在那里?脚本是否改为创建文件名为 public/thumb/hashcode.jpg
的文件?如何将它们放入拇指文件夹?此代码适用于我的本地计算机 windows 10 在 apache2 和 php7.
下
尝试改变这个:
public_path() . '\thumb\'. $thumbnailName
为此:
public_path().DIRECTORY_SEPARATOR.'thumb'.DIRECTORY_SEPARATOR.$thumbnailName
此外,创建 thumb
目录并设置正确的权限:
chmod -R 755 /public/thumb
我有这段代码:
$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 获取图像。我将这张图片直接保存在 public 文件夹中,这样就可以了。我还使用 InternventionImage
创建图像的缩略图并将其保存到 public/thumb 文件夹,如您在代码中所见。
当我运行 db:seed时,没有产生任何错误,一切顺利。但是,当我查看 thumb 文件夹时,那里没有文件。在 public 文件夹中创建了一堆图像,但不在 thumb 中。我登录服务器并 cd 进入默认文件夹并输入 ls,我得到了这个输出:
正如您在图片上看到的那样,那里有一堆 public/thumb/hashcode.jpg
图片。这怎么可能,它们不在 thumb 文件夹中,为什么要把它们列在那里?脚本是否改为创建文件名为 public/thumb/hashcode.jpg
的文件?如何将它们放入拇指文件夹?此代码适用于我的本地计算机 windows 10 在 apache2 和 php7.
尝试改变这个:
public_path() . '\thumb\'. $thumbnailName
为此:
public_path().DIRECTORY_SEPARATOR.'thumb'.DIRECTORY_SEPARATOR.$thumbnailName
此外,创建 thumb
目录并设置正确的权限:
chmod -R 755 /public/thumb