1. 程式人生 > >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::是否迴圈播放

寬高我就不說了,大家都懂的

效果展示::::::