我想将我的图片存储到特定文件夹,该文件夹将按页面ID命名。例如,如果Page id = 1,则文件夹位置应为public / pages / page_id / image_here。
如果该文件夹尚不存在,系统将生成并以其页面ID命名。
$id=1;
$directoryPath=public_path('pages/' . $id);
if(File::isDirectory($directoryPath)){
//Perform storing
} else {
Storage::makeDirectory($directoryPath);
//Perform storing
}
但我有错误" mkdir():无效的参数"。 我能知道它为什么会发生吗?
经过我的研究,有人说文件夹名称应该以id + token为基础,因此入侵者无法根据id搜索图像,是否有可能实现?
答案 0 :(得分:0)
我遇到了同样的问题,但是当我使用File
代替Storage
时,它就有效了!
$id=1;
$directoryPath=public_path('pages/' . $id);
if(File::isDirectory($directoryPath)){
//Perform storing
} else {
File::makeDirectory($directoryPath);
//Perform storing
}
希望这有效!
答案 1 :(得分:0)
当您使用Storage
外观时,它会使用local
磁盘作为默认设置,配置为使用storage_path()
。
因此,如果您想在public
目录中创建目录,请使用File::makeDirectory
这只是mkdir()
的简单包装器以及其他选项或直接使用mkdir()
:
File::makeDirectory($directoryPath);
mkdir($directoryPath);
答案 2 :(得分:0)
For basic Laravel file system the syntax is :
At very top under namespace write:
use File;
Then in your method use:
$id=1;
$directoryPath=public_path('pages/' . $id);
if(File::isDirectory($directoryPath)){
//Perform storing
} else {
File::makeDirectory($directoryPath, 0777, true, true);
//Perform storing
}