• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php+ajax实现文件切割上传功能示例

    本文实例讲述了php+ajax实现文件切割上传功能。分享给大家供大家参考,具体如下:

    html5中的File对象继承Blob二进制对象,Blob提供了一个slice函数,可以用来切割文件数据。

    !DOCTYPE HTML>
    html lang="zh-CN">
    head>
      meta charset="UTF-8">
      title>/title>
    /head>
    body>
      form method="post" id="myForm">
        input type="file" name="file" id="upfile" />
        input type="submit" name="submit" value="提交" />
      /form>
      div id="upStatus">/div>
    /body>
    script type="text/javascript">
      var myForm = document.getElementById("myForm");
      var upfile = document.getElementById("upfile");
    
      myForm.onsubmit = function() {
        //获取文件对象
        var file = upfile.files[0];
        //获取文件大小
        var fileSize = file.size;
        //一次截取的大小(字节)
        var CutSize = 1024 * 1024 * 10;
        //开始截取位置
        var CutStart = 0;
        //结束截取位置
        var CutEnd = CutStart + CutSize;
        //截取的临时文件
        var tmpfile = new Blob();
    
        while(CutStart  fileSize) {
          tmpfile = file.slice(CutStart, CutEnd);
    
          //我们创建一个FormData对象
          var fd = new FormData();
          //把文件添加到FormData对象中
          fd.append("file", tmpfile);
    
          var xhr = new XMLHttpRequest();
          //这里使用同步
          xhr.open("post", "upfile.php", false);
    
          //上传进度
          console.log(Math.round( (CutStart + tmpfile.size) / fileSize * 100) + "%");
    
          //发送FormData对象
          xhr.send(fd);
          //重新设置截取文件位置
          CutStart = CutEnd;
          CutEnd = CutStart + CutSize;
        }
        return false;
      };
    /script>
    /html>
    
    

    upfile.php代码如下:

    ?php
    $uploadDir = './upload/';
    if(!file_exists($uploadDir)) {
      @mkdir($uploadDir, 0777, true);
    }
    $uploadFile = $uploadDir . basename($_FILES['file']['name']);
    
    if(!file_exists($uploadFile)) {
      //如果文件不存在
      move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile);
    } else {
      //如果文件已存在,追加数据
      file_put_contents($uploadFile, file_get_contents($_FILES['file']['tmp_name']), FILE_APPEND);
    }
    
    

    更多关于PHP相关内容可查看本站专题:《PHP+ajax技巧与应用小结》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP大文件切割上传并带进度条功能示例
    • PHP大文件切割上传功能实例分析
    • PHP大文件分割上传 PHP分片上传
    • PHP搭建大文件切割分块上传功能示例
    • php+ajax实现图片文件上传功能实例
    • 使用ajaxfileupload.js实现ajax上传文件php版
    • php+ajax实现异步上传文件或图片功能
    • File, FileReader 和 Ajax 文件上传实例分析(php)
    • PHP+Ajax异步带进度条上传文件实例
    • PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
    上一篇:php 输出缓冲 Output Control用法实例详解
    下一篇:php 使用html5 XHR2实现上传文件与进度显示功能示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php+ajax实现文件切割上传功能示例 php+ajax,实现,文件,切割,