You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9使用imanghafoori1/laravel-video包视频流报错求助

解决Laravel 9中laravel-video包视频流文件找不到的问题

针对你遇到的fopen(...) No such file or directory错误,按以下步骤排查修复:

  • 检查文件路径拼接逻辑
    确认$video->file_path的格式:如果它的值开头带了斜杠(比如/videoFiles/...),用storage_path()拼接后会生成无效路径(比如C:...\storage\/videoFiles...)。确保file_path是相对storage目录的路径,比如videoFiles/ui/2024-02-11-1-I6bnWsI8J0-128210 (Original).mp4,不带前置斜杠。

  • 验证生成的物理路径是否正确
    在控制器方法里临时添加调试代码,输出最终路径:

    public function stream(Video $video)
    {
        $path = storage_path($video->file_path);
        dd($path); // 输出路径后手动检查是否存在该文件
        VideoStreamer::streamFile($path);
    }
    

    复制输出的路径到文件管理器,确认文件真的存在,注意文件名的大小写、空格、特殊字符(比如括号)是否完全匹配。

  • 确认文件实际存储位置
    如果视频文件是上传到storage/app/public目录(通过Storage::disk('public')存储),那么路径拼接应该改为:

    $path = storage_path('app/public/' . $video->file_path);
    

    如果文件存在于public目录而非storage,则改用public_path()拼接:

    $path = public_path($video->file_path);
    
  • 检查文件权限
    Windows环境下,确保web服务器进程(比如IIS、Apache)拥有该视频文件及所在文件夹的读取权限;Linux环境下,设置storage目录的权限为755,并确保文件所属用户与web服务器一致(比如www-data)。

内容的提问来源于stack exchange,提问作者Laravel Learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 13:30:01