2016-06-29 2 views
0

Я смущаюсь этой логикой. Я использую 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:

mkdir /home/ubuntu/workspace/site/public/thumbnails/6300643852187 

Есть предложения?

+0

Hm ...Я не вижу никаких ошибок в данный момент, вы можете просто попытаться выполнить 'mkdir ($ imgpath, 0777, false);' без каких-либо условий? – GONG

+0

Нет, это не работает. –

+0

можете ли вы предоставить листинг '$ imgpath', пожалуйста? (я знаю, что каждый раз это отличается, но в любом случае мне нужно его увидеть) – GONG

ответ

0

Ну ... Я понял, что происходит.

File::exists(public_path() . "/video/$user") ищет это:

/дома/убунту/рабочее пространство/сайт/открытый/видео/N


И Storage::makeDirectory(public_path() . "/video/$user") создает каталог в:

/home/ubu NTU/рабочее пространство/сайт/хранение/приложение/открытое/видео/N


Так что я могу пойти в сайте/Config/filesystems.php и изменить маршруты для приложения и приложения/общественность; вы можете проверить их с помощью помощника storage_path('app').
Но, вместо этого, я решил сохранить видео в хранения/приложение/Public/видео и хранения/приложение/общественные/эскизы, и я получаю ошибку какого-то пакета.

Но оба пути доступны для записи и должны работать до сих пор. Разрешения папки

0

Laravel 5,2

if(!Storage::disk('public')->has('image/path/directory/')){ 
    Storage::disk('public')->makeDirectory('image/path/directory/'); 
} 
1

Вам нужно, чтобы заставить его сделать это как этого

$dr = $_SERVER['DOCUMENT_ROOT']; 
$is_dir = File::makeDirectory($dr.'/uploads/images/'.$user.'/thumbs/', 0755, true, true); 

0755 является

1st верно рекурсивное создание папок

2-ая истина заключается в том, чтобы заставить ее сделать это

Смежные вопросы