2016-07-16 5 views
1

Я использую библиотеку grabzit для преобразования видео в gif с использованием контейнера Laravels IoC.Почему storage_path возвращает каталог «app/..»

namespace App\Services; 

use App\Contracts\VideoToGif; 
use App\Clients\GrabzIt\GrabzItClient; 

class GrabzitService implements VideoToGif { 

... 


public function save(array $input) 
{ 

    try { 

     $id = $input["id"]; 

     $filename = $input["filename"]; 

     $result = $this->client->GetResult($id); 

     $destinationPath = storage_path('media/gifs'); 

     file_put_contents($destinationPath . "/" . $filename, $result); 

    } catch (Exception $e) { 
     throw $e; 
    } 
} 

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

ErrorException: file_put_contents(/app/storage/media/gifs/converted_file.gif): failed to open stream: No such file or directory in /app/app/Services/GrabzitService.php:65 

Не уверен, что если storage_path() предполагают, чтобы вернуть каталог приложений, когда его на самом деле в корне проекта.

Что я здесь делаю неправильно?

Мой проект на Heroku

ответ

0

storage_path() возвращает каталог в/хранения и не предполагают, чтобы быть местом, где вы положили мультимедийное содержимое. storage_path ('медиа/GIF-') возвращает/хранение/СМИ/GIFs

Вместо этого, вы должны хранить ваши средства массовой информации в общедоступном каталоге (public_path())

+0

почему storage_path не возвращается правильный путь, хотя:/приложение/хранилище <- если оно фактически находится вне папки приложения. –

+0

Вы изменили структуру своего каталога? –

+0

Нет, все запасы. –

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