~~~ public function fileupload(){ //执行视频的上传使用thinkphp上传类即可 if (!$upload->upload()) { //上传错误 }else{ //得到上传文件的信息 $info = $upload->getUploadFileInfo(); //================取得视频文件的缩略图================= //需要生成视频图片的大小分别为 200*140 首页的大图需要1024*450的 //利用ffmpeg命令取得缩略图 //首先获取上传视频所在目录的绝对路径 $dir = explode("\\",rtrim(THINK_PATH,"/"));//删除路径最后的"/" array_pop($dir); $dir = implode("\\",$dir);//当前项目所在的目录 $reslibdir = $dir."\\Public\\Uploads\\video\\";//拼装上传视频所在的目录 $dstlibdir = $dir."\\Public\\Uploads\\videopic\\";//把视频的缩略图放进该目录 $resFile = $reslibdir.$info[0]['savename'];//上传资源路径+文件名 $randname = substr($info[0]['savename'],0,strpos($info[0]['savename'],"."));//获取资源名的随机数字 $dstFile1 = $dstlibdir.$randname.".jpg";//生成缩略图后的路径加图片名 //$dstFile2 = $dstlibdir."l_".$randname.".jpg";//生成1024*450的缩略图 //调用函数exec()调用dos命令 //$arr返回执行的结果数组 $status为请求结果 0表示成功 1表示失败 //获取视频的缩略图 exec("{$dir}\\Public\\ffmpeg\\bin\\ffmpeg -i {$resFile} -y -f mjpeg -ss 5 -t 0.01 -s 200*140 {$dstFile1}"); //小图 //exec("{$dir}\\Public\\ffmpeg\\bin\\ffmpeg -i {$resFile} -y -f mjpeg -ss 100 -t 0.01 -s 1024*450 {$dstFile2}");//大图 //================取得视频文件的缩略图================= $file['name'] = $info[0]['savename']; $file['size'] = $_FILES['Filedata']['size'];//取得文件的大小 $fileinfo = pathinfo($_FILES['Filedata']['name']); $file['type'] = $fileinfo['extension'];//取得文件的类型 $file['picname'] = $randname.".jpg";//视频的缩略图 echo json_encode($file); } } ~~~