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::是否循環播放
寬高我就不說了,大家都懂的。
以上是php怎麼實現影片上傳的詳細內容。更多資訊請關注PHP中文網其他相關文章!