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 相关文章推荐
自动跳转中英文页面
Oct 09 PHP
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
php列出一个目录下的所有文件的代码
Oct 09 PHP
浅析php header 跳转
Jun 17 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
Oct 27 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
Dec 07 PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 PHP
php创建图像具体步骤
Mar 13 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
PHP实现用户登录的案例代码
May 10 PHP
php实现微信公众号企业转账功能
Oct 01 PHP
Smarty模板语法详解
Jul 20 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
Ajax PHP分页演示
2007/01/02 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
php表单提交实例讲解
2015/11/12 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python if not in 多条件判断代码
2016/09/21 Python
Python中字符串与编码示例代码
2019/05/20 Python
python使用sklearn实现决策树的方法示例
2019/09/12 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
全球最大的游戏市场:G2A
2018/07/05 全球购物
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
最新大学职业规划书范文
2013/12/30 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
单位消防安全责任书
2014/07/23 职场文书
收款委托书
2014/10/14 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
天鹅湖观后感
2015/06/09 职场文书
生产设备维护保养制度
2015/08/06 职场文书
商务宴会祝酒词
2015/08/11 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
Python绘画好看的星空图
2022/03/17 Python
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android