首頁 >後端開發 >PHP問題 >php怎麼實現影片上傳

php怎麼實現影片上傳

藏色散人
藏色散人原創
2020-08-12 10:54:095529瀏覽

php實作影片上傳的方法:先開啟「php.ini」設定檔並修改相關參數;然後使用「XHR2」實作檔案的切割上傳;接著將影片檔案移到想要的位置;最後將影片入庫即可。

php怎麼實現影片上傳

推薦:《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(&#39;name&#39;,part);//把切割文件打包进表单对象中以便发送,其中name的值就是服务器$_FILES[&#39;name&#39;]接受处的变量名
xhr.open(&#39;POST&#39;,&#39;test.php&#39;,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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn