婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP大文件分塊上傳功能實例詳解

PHP大文件分塊上傳功能實例詳解

熱門標簽:江西手機自動外呼防封系統是什么 怎么向銷售公司推銷外呼系統 哪里辦理400電話 長春人工外呼系統服務商 廣州防封卡外呼系統多少錢一個月 外呼系統撥打暫時無法接通 仁和怎么申請400開頭的電話 高德地圖標注家 廣東地市地圖標注

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

前端代碼

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

!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 標準版壓縮后的 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);
}

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php文件操作總結》、《PHP目錄操作技巧匯總》、《PHP常用遍歷算法與技巧總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《PHP網絡編程技巧總結》

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

您可能感興趣的文章:
  • PHP大文件切割上傳并帶進度條功能示例
  • PHP大文件切割上傳功能實例分析
  • PHP大文件分片上傳的實現方法
  • PHP大文件分割上傳 PHP分片上傳
  • PHP搭建大文件切割分塊上傳功能示例
  • php上傳大文件設置方法
  • apache+php上傳大文件以上傳100M為例
  • 利用discuz實現PHP大文件上傳應用實例代碼
  • PHP大文件分割分片上傳實現代碼

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

巨人網絡通訊聲明:本文標題《PHP大文件分塊上傳功能實例詳解》,本文關鍵詞  PHP,大,文件,分塊,上傳,功能,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP大文件分塊上傳功能實例詳解》相關的同類信息!
  • 本頁收集關于PHP大文件分塊上傳功能實例詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 繁昌县| 新晃| 桑植县| 海盐县| 庄浪县| 颍上县| 同仁县| 张家界市| 宜州市| 马公市| 奉化市| 通山县| 涡阳县| 清镇市| 天等县| 苏尼特右旗| 社旗县| 汉源县| 前郭尔| 永和县| 连城县| 商南县| 陕西省| 郓城县| 寿光市| 晋宁县| 波密县| 应用必备| 博乐市| 逊克县| 英山县| 无锡市| 会东县| 武平县| 龙州县| 吴江市| 阿合奇县| 彩票| 济阳县| 吴桥县| 祁门县|