[英]Laravel 5.2 Storage::makeDirectory($dir) is not creating directory
我對此邏輯感到困惑。 我正在使用Laravel 5.2 Storage :: makeDirectory創建兩個路徑,第一個( video / )創建正確,而另一個( thumbnails / )不創建。
$user = 1;
if(!File::exists(public_path() . "/video/$user"))
{
Storage::makeDirectory(public_path() . "/video/$user", 0777);
}
$file = rand(1111111111111, 9999999999999);
$imgpath = public_path() . "/thumbnails/$file";
if(!File::exists($imgpath))
{
Storage::makeDirectory($imgpath, 0777);
}
這是權限配置:
drwxrwxrwx 2 ubuntu ubuntu 4096 Jun 28 19:33 thumbnails/
drwxrwxrwx 3 ubuntu ubuntu 4096 Jun 29 15:21 video/
我還可以使用$ imgpath中的給定字符串從cli創建目錄:
mkdir /home/ubuntu/workspace/site/public/thumbnails/6300643852187
有什么建議么?
好吧...我知道發生了什么事。
File::exists(public_path() . "/video/$user")
正在尋找:
/ home / ubuntu / workspace / site / public / video / N
而Storage::makeDirectory(public_path() . "/video/$user")
在以下位置創建目錄:
/ home / ubuntu / workspace / site / storage / app / public / video / N
因此,我可以轉到site / config / filesystems.php並更改app和app / public的路由; 您可以使用幫助程序storage_path('app')
。
但是,相反,我決定將視頻保存在storage / app / public / video和storage / app / public / thumbnails中 ,但出現了程序包錯誤。
但是,兩條路徑都是可寫的,並且應該現在就可以使用。
Laravel 5.2
if(!Storage::disk('public')->has('image/path/directory/')){
Storage::disk('public')->makeDirectory('image/path/directory/');
}
您需要強迫它這樣做
$dr = $_SERVER['DOCUMENT_ROOT'];
$is_dir = File::makeDirectory($dr.'/uploads/images/'.$user.'/thumbs/', 0755, true, true);
0755是文件夾權限
第一個正確的是遞歸創建文件夾
第二件事是強迫它去做
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.