2016-01-27 1 views
1

Так что я пытаюсь создать новый каталог в папке C:/..../public/videos когда кто-то загружает видео, используя следующий код:Laravel в кладовках :: MakeDirectory возвращает MKDIR: недопустимый аргумент

if ($request->hasFile('video')) { 
    $newDir = public_path('videos\\' . $story->story_id); 
    Storage::makeDirectory($newDir, 0755, true); 
    $request->file('video')->move($newDir); 
} 

Но я получаю эту ошибку:

ErrorException in Local.php line 350: mkdir(): Invalid argument in Local.php line 350 at HandleExceptions->handleError('2', 'mkdir(): Invalid argument', 'C:\xampp\htdocs\qanda2\vendor\league\flysystem\src\Adapter\Local.php', '350', array('dirname' => 'C:\xampp\htdocs\qanda2\public\videos\31', 'config' => object(Config), 'location' => 'C:\xampp\htdocs\qanda2\storage\app\C:\xampp\htdocs\qanda2\public\videos\31', 'umask' => '0', 'visibility' => 'public')) at mkdir('C:\xampp\htdocs\qanda2\storage\app\C:\xampp\htdocs\qanda2\public\videos\31', '493', true) in Local.php line 350 at Local->createDir('C:\xampp\htdocs\qanda2\public\videos\31', object(Config)) in Filesystem.php line 259 at Filesystem->createDir('C:\xampp\htdocs\qanda2\public\videos\31') in FilesystemAdapter.php line 276

Похоже, MakeDirectory автоматически добавляет C:\xampp\htdocs\qanda2\storage\app\ перед моим путем.

Есть ли обходной путь для этого? Я боролся с этим какое-то время, и я не могу найти ничего об этом.

ответ

2

Для создания каталога, вы должны использовать File, как это:

if ($request->hasFile('video')) { 
    $newDir = public_path('videos\\' . $story->story_id); 
    File::makeDirectory($newDir, 0755, true); 
    $request->file('video')->move($newDir); 
} 
+0

Класс File это один правый Symfony \ Component \ HttpFoundation \ File \ File, не существует метод, называемый MakeDirectory в этом классе , –

+0

О, неважно, это одно: Illuminate \ Support \ Facades \ File. Большое спасибо! –

+0

Если этот код работает, пожалуйста, сделайте этот ответ как принято, поможет другим –

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