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

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

    本文实例讲述了php 使用html5 XHR2实现上传文件与进度显示功能。分享给大家供大家参考,具体如下:

    思路:只要我们知道上传文件的总大小,还有上传过程中上传文件的大小,那么就可以实现进度显示了。

    在html5中,XMLHttpRequest对象,传送数据的时候,progress事件用来返回进度信息。

    它分成上传和下载两种情况

    1.下载的progress事件属于XMLHttpRequest对象
    2.上传的progress事件属于XMLHttpRequest.upload对象。

    与progress事件相关的,还有其他五个事件:

    1.load事件:传输成功完成。
    2.abort事件:传输被用户取消。
    3.error事件:传输中出现错误。
    4.loadstart事件:传输开始。
    5.loadEnd事件:传输结束,但是不知道成功还是失败。

    !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() {
        //我们创建一个FormData对象
        var fd = new FormData();
        var file = upfile.files[0];
        //把文件添加到FormData对象中
        fd.append("file", file);
    
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
          if (xhr.readyState == 4) {
            alert(this.responseText);
          }
        };
        xhr.open("post", "upfile.php", true);
    
        //监听上传事件
        xhr.upload.onprogress = function(ev) {
          //如果长度是可计算的
          if(ev.lengthComputable) {
            var percent = Math.round((ev.loaded / ev.total) * 100);
            document.getElementById("upStatus").innerHTML = percent + "%";
          }
        };
    
        //发送FormData对象
        xhr.send(fd);
        return false;
      };
    /script>
    /html>
    
    

    upfile.php代码如下:

    ?php
    $uploadDir = './upload/';
    if(!file_exists($uploadDir)) {
      @mkdir($uploadDir, 0777, true);
    }
    $uploadFile = $uploadDir . basename($_FILES['file']['name']);
    if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)) {
      echo "OK";
    } else {
      echo "NO";
    }
    
    

    如果上传过程中PHP出现如下信息:

    Warning: POST Content-Length of 625523488 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

    说明文件大小超出了PHP设置限制,可以设置php.ini

    ;脚本解析输入数据(类似 POST 和 GET)允许的最大时间,单位是秒。
    
    ;它从接收所有数据到开始执行脚本进行测量的。
    max_input_time = 60
    
    ;允许客户端单个POST请求发送的最大数据
    post_max_size = 64M
    
    ;是否开启文件上传功能
    file_uploads = On
    
    ;文件上传的临时存放目录(如果不指定,使用系统默认的临时目录)
    ;upload_tmp_dir =
    
    ;允许单个请求上传的最大文件大小
    upload_max_filesize = 64M
    
    ;允许单个POST请求同时上传的最大文件数量
    max_file_uploads = 20
    
    

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP目录操作技巧汇总》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP网络编程技巧总结》

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

    您可能感兴趣的文章:
    • php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
    • PHP使用HTML5 FileApi实现Ajax上传文件功能示例
    • php+html5实现无刷新图片上传教程
    • 使用PHP和HTML5 FormData实现无刷新文件上传教程
    • php+html5+ajax实现上传图片的方法
    • php+html5使用FormData对象提交表单及上传图片的方法
    • php 使用html5实现多文件上传实例
    • PHP 文件上传进度条的两种实现方法的代码
    • php实现简单的上传进度条
    • php上传文件并显示上传进度的方法
    • PHP+Ajax无刷新带进度条图片上传示例
    • PHP+Ajax实现上传文件进度条动态显示进度功能
    上一篇:php+ajax实现文件切割上传功能示例
    下一篇:PHP实现文件上传后台处理脚本
  • 相关文章
  • 

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

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

    php 使用html5 XHR2实现上传文件与进度显示功能示例 php,使用,html5,XHR2,实现,上传,