首先,因为视频一般都比较大所以我们得先修改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::是否循环播放
宽高我就不说了,大家都懂的
效果展示::::::