国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP大文件切割上傳并帶進度條功能示例

2024-05-05 00:09:59
字體:
來源:轉載
供稿:網友

本文實例講述了PHP大文件切割上傳并帶進度條功能。分享給大家供大家參考,具體如下:

前面一篇介紹了PHP大文件切割上傳功能,這里再來進一步講解PHP大文件切割上傳并帶進度條功能。

項目結構圖:

PHP,大文件,切割上傳,進度條

14-slice-upload-fix.html文件:

<!DOCTYPE html><html><head>  <meta charset="utf-8">  <meta http-equiv="X-UA-Compatible" content="IE=edge">  <title>大文件切割上傳帶進度條</title>  <link rel="stylesheet" href=""><script>var xhr = new XMLHttpRequest();//xhr對象var clock = null;function selfile(){  clock = window.setInterval(sendfile,1000);}var sendfile = (function (){  const LENGTH = 1024 * 1024 * 10;//每次上傳的大小  var start = 0;//每次上傳的開始字節  var end = start + LENGTH;//每次上傳的結尾字節  var sending = false;//表示是否正在上傳  var fd = null;//創建表單數據對象  var blob = null;//二進制對象  var percent = 0;  return (function (){    //如果有塊正在上傳,則不進行上傳    if(sending == true){      return;    }    var file = document.getElementsByName('video')[0].files[0];//文件對象    //如果sta>file.size,就結束了    if(start > file.size){      clearInterval(clock);      return;    }    blob = file.slice(start,end);//根據長度截取每次需要上傳的數據    fd = new FormData();//每一次需要重新創建    fd.append('video',blob);//添加數據到fd對象中    up(fd);    //重新設置開始和結尾    start = end;    end = start + LENGTH;    sending = false;//上傳完了    //顯示進度條    percent = 100 * start/file.size;    if(percent>100){      percent = 100;    }    document.getElementById('bar').style.width = percent + '%';    document.getElementById('bar').innerHTML = parseInt(percent)+'%';  });})();function up(fd){  xhr.open('POST','13-slice-upload.php',false);  xhr.send(fd);}</script><style>  #progress{    width:500px;    height:30px;    border:1px solid green;  }  #bar{    width:0%;    height:100%;    background-color: green;  }</style></head><body>  <h1>大文件切割上傳帶進度條</h1>  <div id="progress">    <div id="bar"></div>  </div>  <input type="file" name="video" onchange="selfile();" /></body></html>

13-slice-upload.php文件:

<?php/** * 大文件切割上傳,把每次上傳的數據合并成一個文件 * @author webbc */$filename = './upload/upload.wmv';//確定上傳的文件名//第一次上傳時沒有文件,就創建文件,此后上傳只需要把數據追加到此文件中if(!file_exists($filename)){  move_uploaded_file($_FILES['video']['tmp_name'],$filename);}else{  file_put_contents($filename,file_get_contents($_FILES['video']['tmp_name']),FILE_APPEND);}?>

運行結果圖:

PHP,大文件,切割上傳,進度條

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 志丹县| 凯里市| 漾濞| 子洲县| 望城县| 佛冈县| 锦州市| 靖江市| 镇坪县| 盐池县| 天镇县| 河池市| 英吉沙县| 蓝山县| 建昌县| 蒙阴县| 大庆市| 任丘市| 楚雄市| 海原县| 江津市| 额济纳旗| 漠河县| 邹平县| 彰化县| 新蔡县| 区。| 吉安县| 沙坪坝区| 梁山县| 东方市| 长宁县| 三明市| 东阿县| 交城县| 弥勒县| 连江县| 永川市| 重庆市| 武强县| 吉林市|