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个人网站架设连环讲(一)
Oct 09 PHP
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 PHP
PHP XML备份Mysql数据库
May 27 PHP
从Web查询数据库之PHP与MySQL篇
Sep 25 PHP
php图片加中文水印实现代码分享
Oct 31 PHP
七款最流行的PHP本地服务器分享
Feb 19 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
phpnow php探针环境检测代码
Nov 04 PHP
CI框架中site_url()和base_url()的区别
Jan 07 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
PHP创建多级目录的两种方法
Oct 28 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
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
PHP asXML()函数讲解
2019/02/03 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
html下载本地
2006/06/19 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
[01:01:36]Optic vs paiN 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python发送邮件功能实现代码
2016/07/15 Python
python 使用get_argument获取url query参数
2017/04/28 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
数控技术应用个人求职信范文
2014/02/03 职场文书
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
电力培训学习心得体会
2016/01/11 职场文书
Oracle 死锁的检测查询及处理
2021/09/25 Oracle