为什么storage_path会返回' app /..'目录

时间:2016-07-16 21:13:57

标签: laravel laravel-5.2

我正在使用抓取库将视频转换为使用Laravels IoC容器的gif。

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()是否应该在实际位于项目根目录中时返回app目录。

我在这里做错了什么?

我的项目在Heroku上

1 个答案:

答案 0 :(得分:0)

storage_path()将目录返回到/ storage,并且不应该是放置媒体内容的位置。 storage_path('media / gifs')返回/ storage / media / gifs

相反,您应该将媒体存储在公共目录(public_path())