php怎么实现视频上传

  • 来源:网络
  • 更新日期:2020-08-12

摘要:php实现视频上传的方法:首先打开“php.ini”配置文件并修改相关参数;然后使用“XHR2”实现对文件的的切割上传;接着将视频文件移动到想要的位置;最后将视频入库即可。推荐:《PHP

php实现视频上传的方法:首先打开“php.ini”配置文件并修改相关参数;然后使用“XHR2”实现对文件的的切割上传;接着将视频文件移动到想要的位置;最后将视频入库即可。

推荐:《PHP视频教程》

php视频上传超简单

首先,因为视频一般都比较大所以我们得先修改PHP的配置:这里有两种方法:

方法1: 打开:php.ini

修改里面的上传配置,找到以下参数,依次做修改

file_uploads = On
  upload_tmp_dir = "d:/fileuploadtmp"
  upload_max_filesize = 50M
  post_max_size = 100M
  max_execution_time = 600
  max_input_time = 600
  memory_limit = 128M

方法2:利用php的函数来进行修改

ini_get()获取php.ini设置值

ini_set()设置php.ini

假设要上传一个50M的大文件。配置php.ini 如下:

file_uploads = On
 upload_tmp_dir = "d:/fileuploadtmp"
 upload_max_filesize = 50M
 post_max_size = 100M
 max_execution_time = 600
 max_input_time = 600
 memory_limit = 128M

提示:需要保持 memory_limit > post_max_size > upload_max_filesize

:::::::::::::::万能分割线:::::::::::::::::::::::::

假设:视频文件太大,,我们就必须对他进行切割

使用XHR2实现对文件的的切割上传

具体代码如下:

var fileobj = document.getElementByTagName('input')[i].files[0];//获取文件上传对象的文件资源
const SLICESIZE = 10 * 1024 * 1024;//每次切割的大小,这里是10MB//此处可做修改
var start = 0;   //初始化截取开始位置
var end = 0;   //初始化截取终止位置
totalsize = fileobj.size; //获取文件的总的大小
while(start < totalsize){ //利用while循环将文件进行截取提交
start = end ; //
end = start + SLICESIZE; //
 
var xhr = new XMLHttpRequest(); //创建ajax对象
 
var fd = new FormData(); //创建表单对象
 
var part = fileobj.slice(start,end);//对文件进行切割,两个参数
 
fd.append('name',part);//把切割文件打包进表单对象中以便发送,其中name的值就是服务器$_FILES['name']接受处的变量名
xhr.open('POST','test.php',false);//之所以关闭异步,是为了防止文件块送达服务器的顺序出错
 
xhr.send(fd);//把打包的数据发送
}

到php页面开始接值

此时,视频文件传值到了upload/data/videp/demo.mov中;

接下来,,就是讲这个文件移动到你想要的位置

因为我使用move_uploaded_file老是不成功(你可以尝试一下),就想着能不能将这个临时文件重命名能不能行

我试着使用rename

将视频入库

在前台展示是用

{if $brand_video}
     <embed src="http://www.ecshop.com/data/video/{$brand_video}" sutostart=true loop=true width=800 height=600></embed>
{/if}

参数解析:sutostart::是否自动播放

Loop::是否循环播放

宽高我就不说了,大家都懂的。