加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP大文件分块上传功能实例介绍

发布时间:2022-07-18 15:03:04 所属栏目:PHP教程 来源:互联网
导读:本文实例讲述了PHP大文件分块上传功能,分享给大家供大家参考,具体如下: 前端代码 使用file.slice将文件进行分割,然后分别进行异步上传。 !DOCTYPE html html lang=zh-cn head meta charset=utf-8 meta http-equiv=X-UA-Compatible content=IE=edge meta
    本文实例讲述了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">
      <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>
           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();
    
              contentType:false,
              success:(res)=>{
                console.log('res_'+i+":");
                console.log(res);
              }
            })
          }
          return false;
        });
      </script>
     </body>
    </html>
    后端代码
 
    在所有的文件上传成功之后,合并生成原来的大文件
 
    <?php
     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);
    }

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读