主頁 > 知識(shí)庫(kù) > PHP大文件分塊上傳功能實(shí)例詳解

PHP大文件分塊上傳功能實(shí)例詳解

熱門標(biāo)簽:江西手機(jī)自動(dòng)外呼防封系統(tǒng)是什么 怎么向銷售公司推銷外呼系統(tǒng) 哪里辦理400電話 長(zhǎng)春人工外呼系統(tǒng)服務(wù)商 廣州防封卡外呼系統(tǒng)多少錢一個(gè)月 外呼系統(tǒng)撥打暫時(shí)無法接通 仁和怎么申請(qǐng)400開頭的電話 高德地圖標(biāo)注家 廣東地市地圖標(biāo)注

本文實(shí)例講述了PHP大文件分塊上傳功能。分享給大家供大家參考,具體如下:

前端代碼

使用file.slice將文件進(jìn)行分割,然后分別進(jìn)行異步上傳。

!DOCTYPE html>
html lang="zh-cn">
 head>
  meta charset="utf-8">
  meta http-equiv="X-UA-Compatible" content="IE=edge">
  meta name="viewport" content="width=device-width, initial-scale=1">
  title>%= title %>/title>
  !-- zui -->
  link rel="stylesheet"  rel="external nofollow" >
 /head>
 body>
  div class="container" style="margin-top: 30px;">
    form class="form-inline" method="post" enctype="multipart/form-data">
     div class="form-group">
      input type="file" id="fileBig" class="form-control">
     /div>
     button type="submit" class="btn btn-primary">提交/button>
    /form>
  /div>
  !-- ZUI Javascript 依賴 jQuery -->
  script src="http://zui.sexy/assets/jquery.js">/script>
  !-- ZUI 標(biāo)準(zhǔn)版壓縮后的 JavaScript 文件 -->
  script src="http://zui.sexy/dist/js/zui.min.js">/script>
  script type="text/javascript">
    $('form').submit(function() {
      let file = $(":file")[0].files[0];
      let fileName = file.name;
      let fileSize = file.size;
      console.log('fileSize',fileSize);
      let blockSize = 0.9*1024*1024;
      let num = Math.ceil(fileSize/blockSize);
      let start = 0;
      let end = 0;
      for(let i=1;i=num;i++){
        end = blockSize*i;
        if(end > fileSize){
          end = fileSize;
        }
        let block = file.slice(start,end);
        start = end;
        let fd = new FormData();
        fd.append('block',block);
        fd.append('name',fileName);
        fd.append('total',num);
        fd.append('index',i);
        $.ajax({
          url:"upload.php",
          type:"POST",
          data:fd,
          async:true,
          processData:false,
          contentType:false,
          success:(res)=>{
            console.log('res_'+i+":");
            console.log(res);
          }
        })
      }
      return false;
    });
  /script>
 /body>
/html>

后端代碼

在所有的文件上傳成功之后,合并生成原來的大文件

?php
$name = $_POST['name'];
$index = $_POST['index'];
$total = $_POST['total'];
echo "name:".$name.PHP_EOL;
echo "index:".$index.PHP_EOL;
echo "total:".$total.PHP_EOL;
move_uploaded_file($_FILES['block']['tmp_name'],'upload/'.$name."_".$index);
$list = scandir('upload');
$num = count($list)-2;
echo "cur_num:".$num.PHP_EOL;
if($num == $total){
  echo "upload done".PHP_EOL;
  echo $cmd = "cat upload/'{$name}_'* > upload/'{$name}'";
  shell_exec($cmd);
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php文件操作總結(jié)》、《PHP目錄操作技巧匯總》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》及《PHP網(wǎng)絡(luò)編程技巧總結(jié)》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP大文件切割上傳并帶進(jìn)度條功能示例
  • PHP大文件切割上傳功能實(shí)例分析
  • PHP大文件分片上傳的實(shí)現(xiàn)方法
  • PHP大文件分割上傳 PHP分片上傳
  • PHP搭建大文件切割分塊上傳功能示例
  • php上傳大文件設(shè)置方法
  • apache+php上傳大文件以上傳100M為例
  • 利用discuz實(shí)現(xiàn)PHP大文件上傳應(yīng)用實(shí)例代碼
  • PHP大文件分割分片上傳實(shí)現(xiàn)代碼

標(biāo)簽:惠州 梅河口 湘西 廈門 文山 黔東 濮陽 海北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP大文件分塊上傳功能實(shí)例詳解》,本文關(guān)鍵詞  PHP,大,文件,分塊,上傳,功能,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP大文件分塊上傳功能實(shí)例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP大文件分塊上傳功能實(shí)例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章