在路径上找不到文件:在laravel 5.6上

时间:2018-03-09 07:19:41

标签: php laravel ffmpeg

我正在使用laravel 5.6,我将尝试制作多个上传视频功能,并使用laravel-ffmpeg获取帧和持续时间,但是当我尝试上传一个视频时,总是显示错误,例如“路径中找不到文件” :“,

这是我存储视频和获取持续时间的功能。框架:

public function doCreate($lessonsid)
  {
      if (empty(Session::get('contribID'))) {
        return redirect('contributor/login');
      }
    # code...
    // validate
    // read more on validation at http://laravel.com/docs/validation
    $rules = array(
      'judul'          => 'required',
    //   'video.*'  => 'mimes:mp4,mov,ogg,webm |required|max:100000',
    //   'image.*' => 'mimes:jpeg,jpg,png,gif|required|max:30000'
    );
    $validator = Validator::make(Input::all(), $rules);

    // process the login
    if ($validator->fails()) {
        return redirect()->back()->withErrors($validator)->withInput();
    } else {

        $now          = new DateTime();
        $cid          = Session::get('contribID');
        $title        = Input::get('judul');
        $image_video = Input::file('image');
        $lessons_video = Input::file('video');
        // dd($lessons_video);
        // $media = FFMpeg::open('https:/dev.cilsy.id/assets/source/lessons/lessons-74/video-8/1. Introduction (2).mp4');
        // $frame = $media->getFrameFromString('00:00:13.37');
        // dd($media);    
        $description  = Input::get('desc');

        $video=Video::where('lessons_id',$lessonsid)->get();
        $count_video=count($video);


        if (!is_dir("assets/source/lessons/lessons-$lessonsid")) {
                $newforder=mkdir("assets/source/lessons/lessons-".$lessonsid);
        }

        $i=$count_video + 1;
        foreach ($title as $key => $titles) {
                $type_video =$lessons_video[$key]->getMimeType();

                if (!is_dir("assets/source/lessons/lessons-".$lessonsid."/video-".$i)) {
                        $newforder=mkdir("assets/source/lessons/lessons-".$lessonsid."/video-".$i);
                }
                $DestinationPath= 'assets/source/lessons/lessons-'.$lessonsid.'/video-'.$i;
                //insert image
                if(!empty($image_video[$key])){
                    $imagefilename    = $image_video[$key]->getClientOriginalName();
                    $image_video[$key]->move($DestinationPath, $imagefilename);
                }else{
                    $imagefilename    = '';
                }
                if($imagefilename ==''){
                    $url_image= $imagefilename;
                }else{
                    $urls=url('');
                    $url_image= $urls.'/assets/source/lessons/video-'.$i.'/'.$imagefilename;
                }

                //insert video
                if(!empty($lessons_video[$key])){
                    $lessonsfilename    = $lessons_video[$key]->getClientOriginalName();
                    $lessons_video[$key]->storeAs($DestinationPath, $lessonsfilename);
                }else{
                    $lessonsfilename    = '';
                }
                if($lessonsfilename ==''){
                    $url_video= $lessonsfilename;
                }else{
                    $urls=url('');
                    $url_video= $urls.'/assets/source/lessons/video-'.$i.'/'.$lessonsfilename;
                }




                $store                  = new Video;
                $store->lessons_id      = $lessonsid;
                $store->title           = $titles;
                $store->image           = $url_image;
                $store->video           = $url_video;
                $store->description     = $description[$key];
                $store->type_video      = $type_video;
                $store->durasi          = 0;
                $store->created_at      = $now;
                $store->enable=1;
                $store->save();
                if($store){
                    $media = FFMpeg::open($url_video);
                    // $frame = FFMpeg::open($link)
                    //         ->getFrameFromSeconds(10)
                    //         ->export()
                    //         ->toDisk('public')
                    //         ->save($filename.'.png');
                    dd($media);
                    $durationInSeconds = $media->getDurationInSeconds();
                    // dd($media);


                }
        $i++;
        }

        // Session::set('lessons_title',$title);
        // Session::set('lessons_category_id',$category_id);
        // Session::set('lessons_image',$image);
        // Session::set('lessons_description',$description);

        return redirect('contributor/lessons/'.$lessonsid.'/view')->with('success','Penambahan video berhasil');

    }
  }

这是邮件错误,当我尝试上传我的视频时

error display

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

尝试使用public_path()

$DestinationPath= public_path().'/'.'assets/source/lessons/lessons-'.$lessonsid.'/video-'.$i;

答案 1 :(得分:0)

您的文件未保存,您应该使用public_path帮助程序来存储和检索文件。

$image_video[$key]->move(public_path('lessons/lessons-'.$lessonsid.'/video-'.$i), $imagefilename);

或者您可以将它们存储到存储文件夹

$image_video[$key]->move(storage_path('lessons/lessons-'.$lessonsid.'/video-'.$i), $imagefilename);

您可以使用这些帮助程序检索文件。

希望这有帮助。