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; //获取文件的总的大小 whilestart < totalsize){ //利用while循环将文件进行截取提交 start = end ; // end = start + SLICESIZE; // var xhr = new XMLHttpRequest); //创建ajax对象 var fd = new FormData); //创建表单对象 var part = fileobj.slicestart,end);//对文件进行切割,两个参数 fd.append'name',part);//把切割文件打包进表单对象中以便发送,其中name的值就是服务器$_FILES['name']接受处的变量名 xhr.open'POST','test.php',false);//之所以关闭异步,是为了防止文件块送达服务器的顺序出错 xhr.sendfd);//把打包的数据发送 }
到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::是否循环播放
宽高我就不说了,大家都懂的。