📅  最后修改于: 2023-12-03 15:07:42.403000             🧑  作者: Mango
在 Laravel 中上传视频可以使用 Laravel 自带的文件上传功能及一些第三方包。本文将介绍两种方式:使用 Laravel 自带文件上传功能和使用第三方包上传视频。
在 Laravel 中使用文件上传功能需要使用表单中的 file
类型 input。我们可以使用 Laravel 提供的 Illuminate\Http\Request
类来获取上传的文件。我们需要在表单里设置 enctype
为 multipart/form-data
类型,告知服务器我们将上传二进制数据。
如下是一个上传视频的表单:
<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="video">
<input type="submit" value="上传">
</form>
在 Laravel 的 Controller 中可以使用如下代码获取上传的视频:
public function upload(Request $request)
{
$video = $request->file('video');
if ($video) {
// 上传视频成功
} else {
// 上传视频失败
}
}
如果使用 Laravel 自带文件上传功能不能满足我们的需求,我们可以考虑使用第三方包。既然是上传视频,我们不妨使用 ffmpeg
工具来处理视频。我们可以使用 PHP-FFMpeg
第三方包来集成 ffmpeg
工具。
composer require php-ffmpeg/php-ffmpeg
使用 PHP-FFMpeg
可以轻松地获取视频的信息、转码、裁剪、剪辑等功能,例如,我们可以使用以下代码来获取视频时长:
use FFMpeg\FFProbe;
$durationInSeconds = FFProbe::create()
->format('your/video.mkv')
->get('duration');
我们可以使用以下代码来上传视频:
use FFMpeg\FFMpeg;
public function upload(Request $request)
{
$video = $request->file('video');
if ($video) {
$ffmpeg = FFMpeg::create();
$videoFile = $ffmpeg->open($request->file('video'));
$videoFile->save('path/to/directory/new-file-name.mp4');
// 上传视频成功
} else {
// 上传视频失败
}
}
以上就是在 Laravel 中上传视频的两种方式:使用 Laravel 自带文件上传功能和使用第三方包。根据项目的需求来选择合适的方式。