php - 在 Laravel 项目中上传视频
问题描述
当我尝试将视频/电影上传到我的网站时遇到问题。它不会将视频保存在数据库中,但它会在我的文件中创建一个文件夹“电影”,其中包含该视频,就像它应该做的那样。我还编辑了我的 php.ini 文件以满足大小要求,并且我制作的会话说它已上传。这是我的代码
看法:
<div class="col-md-6">
{!! Form::open(['method'=>'POST', 'action'=> 'MovieController@store', 'files' => true]) !!}
<div class="form-group">
{!! Form::label('movie_name', 'Enter Movie Name:') !!} <br>
{!! Form::text('movie_name', null, ['class'=>'form-control'])!!}
</div>
<div class="form-group">
{!! Form::label('uploaded_path', 'Select Movie:') !!} <br>
{!! Form::file('uploaded_path', null, ['class'=>'form-control'])!!}
</div>
</div>
<div class="form-group">
{!! Form::label('actor_id', 'Actors:') !!}
{!! Form::select('actor_id[]', $actors, null, ['class'=>'form-control js-example-basic-multiple', 'multiple' => 'multiple']) !!}
</div>
<div class="form-group">
{!! Form::label('category_id', 'Category:') !!}
{!! Form::select('category_id[]', $categories, null, ['class'=>'form-control js-example-basic-multiple', 'multiple' => 'multiple']) !!}
</div>
电影请求:
public function rules()
{
return [
'movie_name' => 'required|max:255',
'uploaded_path' => 'mimetypes:video/avi,video/mpeg,video/mp4|required'
];
}
控制器:
public function store(MovieRequest $request)
{
DB::beginTransaction();
try {
if ($request->hasFile('uploaded_path')) {
$filenameWithExt = $request->file('uploaded_path')->getClientOriginalName();
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
$extension = $request->file('uploaded_path')->getClientOriginalExtension();
$fileNameToStore = $filename. '_'.time().'.'.$extension;
$path = $request->file('uploaded_path')->storeAs('public/movies/', $fileNameToStore);
} else {
$fileNameToStore = 'novideo.mp4';
}
$movie = new Movie;
$movie->movie_name = $request->input('movie_name');
$movie->uploaded_path = $fileNameToStore;
$movie->actors()->attach($request->input('actor_id'));
$movie->categories()->attach($request->input('category_id'));
$movie->save();
DB::commit();
} catch (\Exception $e) {
DB::rollBack();
}
Session::flash('success', 'A movie was successfully UPLOADED in the database!');
return redirect()->route('movies.index');
}
解决方案
不要忘记添加:
enctype="multipart/form-data"
到电影领域。
推荐阅读
- kubernetes - 运行具有 IAM 角色权限的 Kubernetes pod
- ruby-on-rails - Rails5迁移:表没有外键
- go - Golang变量声明语法含义
- python - 无法导入本地 python 模块
- java - Ubuntu apt-get install for OracleJava 8 Installer - HTTP 501 错误
- sql - 更新表并插入缺失的记录
- python - Python 中的 re.sub 与 re.findall
- python-3.x - 如何使用python selenium检查元素中是否存在文本?
- ruby-on-rails - [RAILS]:使用 ransack 按地址列出结果
- sql-server - 从 SQL Server 2017 中的 restore filelistonly 过程中丢弃列