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

如何将上传的视频保存到Public路径?原图片处理方案失效

视频上传保存解决方案

问题根源

Image Intervention Package仅支持处理图片格式,无法解析视频文件,你原代码中Image::make($video)的调用必然失效,因为该方法无法处理视频资源。

正确实现代码

直接使用Laravel自带的文件操作能力保存视频,无需依赖Image Intervention:

use Illuminate\Support\Facades\File;

$video = $request->file('video');
// 生成唯一文件名
$vid_name = hexdec(uniqid()) . '.' . $video->getClientOriginalExtension();
// 定义public目录下的保存路径
$saveDir = 'uploads/about/experience_us/';
$fullSavePath = public_path($saveDir);

// 确保目标目录存在,不存在则递归创建
if (!File::exists($fullSavePath)) {
    File::makeDirectory($fullSavePath, 0755, true);
}

// 将上传的视频文件移动到目标目录
$video->move($fullSavePath, $vid_name);
$vid_url = $saveDir . $vid_name;

// 更新或创建数据库记录
// 注意:updateOrCreate第一个参数是查询条件,需根据实际业务补充,比如指定id
ExperienceUs::updateOrCreate(
    // ['id' => 1], // 示例条件,根据你的需求调整
    ['video' => $vid_url]
);

关键提示

  • 必须引入File门面来处理目录创建操作
  • updateOrCreate的第一个参数是查询条件,如果不指定,每次调用都会生成新的数据库记录,务必根据业务场景补充该条件,确保是更新指定记录而非重复创建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:18:14