我正在使用抓取库将视频转换为使用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上
答案 0 :(得分:0)
storage_path()将目录返回到/ storage,并且不应该是放置媒体内容的位置。 storage_path('media / gifs')返回/ storage / media / gifs
相反,您应该将媒体存储在公共目录(public_path())
中