簡體   English   中英

Laravel 5.2 Storage :: makeDirectory($ dir)沒有創建目錄

[英]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並更改appapp / public的路由; 您可以使用幫助程序storage_path('app')
但是,相反,我決定將視頻保存在storage / app / public / videostorage / 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM