繁体   English   中英

laravel:如何输出视频文件的文件路径

[英]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.mp4videos/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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM