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::是否循環播放
寬高我就不說了,大家都懂的
效果展示::::::
總結
以上是生活随笔為你收集整理的php视频上传超简单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android6.0 无法锁屏
- 下一篇: 大数相乘(分治法)