2016-08-28 72 views
2

我有这样一段代码:创建名称为文件夹/ 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获取图片。我直接在公共文件夹中保存这个图像,并且工作。我还使用InternventionImage创建图像的缩略图,并将其保存到公共/缩略图文件夹,如代码中所示。

当我运行db:seed时,没有产生任何错误,它一切顺利。但是当我查看拇指文件夹时,那里没有文件。公共文件夹内创建了一堆图像,但不在拇指内。我记录在服务器和cd到默认的文件夹,并输入LS和我得到这个输出:

正如你可以在图像上看到有一堆public/thumb/hashcode.jpg图像那里。这怎么可能,他们不在拇指文件夹里,为什么在那里列出他们?脚本是否创建了文件名为public/thumb/hashcode.jpg的文件?我如何将它们放在拇指文件夹内?这段代码在apache2和php7下的本地机器窗口10上工作。

+1

的问题是follwoing代码public_path( )。 '\\拇指\\'。 $ thumbnailName在public_path()中以名称'\\ thumb \\'创建图像。 $ thumbnailName。使用public_path()。 '/拇指/'。 $ thumbnailName将其保存在拇指内。 –

+0

谢谢,它做到了 –

回答

1

尝试改变这一点:

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

要这样:

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

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

chmod -R 755 /public/thumb 
+0

我用public_path()结束了。 '/拇指/'。 $ thumbnailName由上面的Andrej提出。但是,您的答案也适用,因此我会接受它作为问题的答案。 –

相关问题