PHP+Ajax实现上传文件进度条动态显示进度功能


Posted in PHP onJune 04, 2018

PHP+Ajax实现上传文件进度条动态显示进度功能

说个前提:PHP配置文件中规定默认上传文件大小限制2M以下,如需上传大文件需同时更改php.ini中的upload_max_filesizemax_execution_time以及post_max_size的值。

主界面以及Ajax实现:index.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <title>上传文件</title> 
  <script type="text/javascript"> 
    function sub() { 
      var obj = new XMLHttpRequest(); 
      obj.onreadystatechange = function() { 
        if (obj.status == 200 && obj.readyState == 4) { 
          document.getElementById('con').innerHTML = obj.responseText; 
        } 
      } 
      // 通过Ajax对象的upload属性的onprogress事件感知当前文件上传状态 
      obj.upload.onprogress = function(evt) { 
        // 上传附件大小的百分比 
        var per = Math.floor((evt.loaded / evt.total) * 100) + "%"; 
        // 当上传文件时显示进度条 
        document.getElementById('parent').style.display = 'block'; 
        // 通过上传百分比设置进度条样式的宽度 
        document.getElementById('son').style.width = per; 
        // 在进度条上显示上传的进度值 
        document.getElementById('son').innerHTML = per; 
      } 
      // 通过FormData收集零散的文件上传信息 
      var fm = document.getElementById('userfile3').files[0]; 
      var fd = new FormData(); 
      fd.append('userfile', fm); 
      obj.open("post", "upload.php"); 
      obj.send(fd); 
    } 
  </script> 
  <style type="text/css"> 
    #parent { 
      width: 200px; 
      height: 20px; 
      border: 2px solid gray; 
      background: lightgray; 
      display: none; 
    } 
    #son { 
      width: 0; 
      height: 100%; 
      background: lightgreen; 
      text-align: center; 
    } 
  </style> 
</head> 
<body> 
  <h2>Ajax实现进度条文件上传</h2> 
  <div id="parent"> 
    <div id="son"></div> 
  </div> 
  <p id="con"></p> 
  <input type="file" name="userfile" id="userfile3"><br><br> 
  <input type="button" name="btn" value="文件上传" onclick="sub()"> 
</body> 
</html>

php处理上传文件:upload.php

<?php  
  // 上传文件进行简单错误过滤 
  if ($_FILES['userfile']['error'] > 0) { 
    exit("上传文件有错".$_FILES['userfile']['error']); 
  } 
  // 定义存放上传文件的真实路径 
  $path = './upload/'; 
  // 定义存放上传文件的真实路径名字 
  $name = $_FILES['userfile']['name']; 
  // 将文件的名字的字符编码从UTF-8转成GB2312 
  $name = iconv("UTF-8", "GB2312", $name); 
  // 将上传文件移动到指定目录文件中 
  if (move_uploaded_file($_FILES['userfile']['tmp_name'], $path.$name)) { 
    echo "文件上传成功"; 
  } else { 
    echo "文件上传失败"; 
  } 
 ?>

总结

以上所述是小编给大家介绍的PHP+Ajax实现上传文件进度条动态显示进度功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP一些有意思的小区别
Dec 06 PHP
php中cookie的作用域
Mar 27 PHP
php设计模式 FlyWeight (享元模式)
Jun 26 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
Oct 23 PHP
fgetcvs在linux的问题
Jan 15 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
Jun 24 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
php进行md5加密简单实例方法
Sep 19 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 PHP
Laravel 添加多语言提示信息的方法
Sep 29 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 PHP
Laravel利用gulp如何构建前端资源详解
Jun 03 #PHP
PHP学习记录之数组函数
Jun 01 #PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 #PHP
PHP+MySQL实现模糊查询员工信息功能示例
Jun 01 #PHP
php post json参数的传递和接收处理方法
May 31 #PHP
PHP调用接口用post方法传送json数据的实例
May 31 #PHP
ThinkPHP5 验证器的具体使用
May 31 #PHP
You might like
如何使用PHP中的字符串函数
2006/10/09 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
python操作日期和时间的方法
2014/03/11 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
招商经理岗位职责
2013/11/16 职场文书
大学本科毕业生的自我鉴定
2013/11/26 职场文书
英文自荐信
2013/12/15 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
聊城大学毕业生自荐书
2014/02/01 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
对标管理实施方案
2014/03/12 职场文书
酒店端午节活动方案
2014/08/26 职场文书
营销总监岗位职责
2014/09/16 职场文书
体育运动会广播稿
2014/10/05 职场文书
后备干部推荐材料
2014/12/24 职场文书
新闻通讯稿范文
2015/07/22 职场文书
详解Python中__new__方法的作用
2022/03/31 Python