我正在使用faker,我想生成图像并保存它们但是收到错误
mkdir(): No such file or directory
所以我有
$factory->define(App\User::class, function (Faker $faker) {
$filepath = storage_path('images/fakerusr/'); //this fails
if(!File::exists($filepath)){
File::makeDirectory($filepath);
};
return [
'profile_pic' => $faker->image($filepath,400,300)
];
});
当我使用
时BUT$filepath = public_path('images/fakerusr/'); //this works
但是db中保存的路径是从./var/www开始的...但是我希望公共文件夹中的图像路径。
我已将公共文件夹的读写权限添加到
sudo chmod a+rw -R /var/www.../public
我该怎么做呢。
答案 0 :(得分:0)
确保图像和子目录fakerusr已存在。默认情况下,unix命令mkdir需要-p
标志为"根据需要创建中间目录"并且PHP函数mkdir还要求第3个参数为true
来创建嵌套目录。 File::makeDirectory
也可能就是这样。
答案 1 :(得分:0)
您可以使用Storage::has
$directory='images/fakerusr';
if (!Storage::has($directory)) {
$resp= Storage::makeDirectory($directory);
dd($resp);
} else{
echo "already exist";
};
另请注意,目录将在storage\app\
内创建。并确保您拥有这些文件夹的755权限
如果要在公用文件夹中创建目录
$directory='images/fakerusr';
if (File::isDirectory($directory)) {
echo "already exist";
} else{
$result = File::makeDirectory($directory, 0775, true);
}
答案 2 :(得分:0)
$filepath = storage_path('images/fakerusr/'); //this fails
if(!File::exists($filepath)){
File::makeDirectory($filepath, 0755, true, true);
};
答案 3 :(得分:0)
我正在使用“是否检查目录是否存在并使目录公开”。
use Illuminate\Http\File;
$path = public_path('upload/imgaes');
if(!File::isDirectory($path)){
File::makeDirectory($path, 0777, true, true);
}
希望这项工作