php - Laravel 视频、音频和图片上传
问题描述
这是我的 PostsController 图片上传方法
public function store(Request $request, User $user, Image $image)
{
$this->validate($request, [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
'body' => 'required'
]);
if( $request->hasFile('image') ) {
$image = $request->file('image');
$filename = time() . '.' . $image->getClientOriginalExtension();
Image::make($image)->save( public_path('uploads/images/' . $filename ) );
}
$image = $filename;
auth()->user()->publish(
new Post(['body' => request('body'), 'image' => $image, 'user_id' => auth()->id()])
);
return redirect('/');
}
我想要一种上传图像、视频和音频的方法,以及一个用户可以上传图像或视频或音频的输入 如何在一个控制器中完成所有这些事情?
解决方案
如果您正在使用表单请求,请尝试使用以下代码
public function rules() {
$rules = [
'some_field' => 'required',
];
// if fileType is audio
if ($this->input('fileType') == 'audio') {
$rules['file'] = 'mimes:mp3,mp4';
}
//if fileType is video
if ($this->input('fileType') == 'video') {
$rules['file'] = 'mimes:mp4,3gp';
}
return $rules;
}
字段名称和验证规则根据您的要求更改。
推荐阅读
- java - 如何正确从网站下载文本并将其放入.txt?
- android - ReactNative - 试图分配给只读属性
- python - Python:如何仅提取 x 个字符的字符块中的完整单词?
- javascript - Javascript/jQuery 连接四个有缺陷
- javascript - 使用 fetch() 调用的响应编辑 DOM
- .net-core - Windows Server:找不到指定的框架“Microsoft.AspNetCore.App”,版本“2.1.0”
- python - 创建我自己的登录表单 django
- azure - 使用 ClaimsTransformation 中的 FormatStringClaim 转换方法删除数字之间的“-”连字符
- javascript - Discord.js 仅使用他的 ID 获取用户保存在数据库中的内容
- r - 正则表达式模式 r 的对面