[英]laravel: how can I output the filepath of a video file
当我通过表单上传一些视频时,它会将我的视频保存在公用文件夹中,但是在view
我无法访问它们。
我的看法(打算输出文件路径)
<td>{{ $media->video_ogg}} </td>
<td>{{ $media->video_mp4}} </td>
结果
C:\Users\Jeffrey\AppData\Local\Temp\phpBB7C.tmp
C:\Users\Jeffrey\AppData\Local\Temp\phpBB7C.tmp
它应该在不同的路径(我的项目路径)上。
在本地计算机上的videos文件夹中,我可以看到视频已上传。
Mycontroller.php
public function store(Request $request)
{
// Validation //
$validation = Validator::make($request->all(), [
'about_me' => 'required',
'video_ogg' => 'required|mimes:mp4,ogx,oga,ogv,ogg,webm|min:1|max:3240',
'video_mp4' => 'required|mimes:mp4,mov,ogg,qt,webm|min:1|max:3240'
]);
// Check if it fails //
if( $validation->fails() ){
return redirect()->back()->withInput()
->with('errors', $validation->errors() );
}
$profile = new Profile;
// upload the media //
$file = $request->file('video_ogg');
$destination_path = 'videos/';
$filename = str_random(6).'_'.$file->getClientOriginalName();
$file->move($destination_path, $filename);
// upload the media //
$file = $request->file('video_mp4');
$destination_path = 'videos/';
$filename = str_random(6).'_'.$file->getClientOriginalName();
$file->move($destination_path, $filename);
// save media data into database //
$profile->about_me = $request->input('about_me');
$profile->video_mp4 = $request->file('video_mp4');
$profile->video_ogg = $request->file('video_ogg');
$profile->save();
return redirect('/profile')->with('message','You just created your profile!');
}
文件权限(在Windows Powershell上)
那么,如何在view
上获得正确的路径?
因为它应该是: videos/QvWjJ2_mov_bbb.mp4
和videos/muWzE9_mov_bbb.ogg
尝试这样:
<td>{{ url('/') }}{{ YOUR_FILE_PATH_AFTER_PUBLIC }}</td>
<td>{{ url('/') }}{{ YOUR_FILE_PATH_AFTER_PUBLIC }}</td>
例如: 使用紧凑型从控制器发送路径到视图,如下所示:
$path = '/videos/muWzE9_mov_bbb.ogg';
$path1 = '/videos/QvWjJ2_mov_bbb.mp4';
return view('VIEW_PATH',compact('path','path1'));
在视图中:
<td>{{ url('/') }}{{ $path }}</td>
<td>{{ url('/') }}{{ $path1 }}</td>
首先,当您保存上传的文件时,请在文件名中添加一个随机字符串。 您似乎没有将这个随机文件名保存在任何地方,因此以后将很难找到文件。 您可能希望将这些文件名添加到保存在数据库中的配置文件对象中。
之后,您的控制器可以构建URL
$ogg_path = 'videos/' . $profile->ogg_filename;
$mp4_path = 'videos/' . $profile->mp4_filename;
然后在视图中
{{ url($ogg_path) }}
{{ url($mp4_path) }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.