php ajax实现文件上传进度条


Posted in PHP onMarch 29, 2016

本实例是关于php文件上传时进度条的实现,主要采用ajax技术,另外还运用了html5,有需要的朋友可以研究一下。
本实例有两个文件:

upload_form.html:

<!DOCTYPE html>
<html>
<head>
<script>
function _(el){
  return document.getElementById(el);
}
function uploadFile(){
  var file = _("file1").files[0];
  // alert(file.name+" | "+file.size+" | "+file.type);
  var formdata = new FormData();
  formdata.append("file1", file);
  var ajax = new XMLHttpRequest();
  ajax.upload.addEventListener("progress", progressHandler, false);
  ajax.addEventListener("load", completeHandler, false);
  ajax.addEventListener("error", errorHandler, false);
  ajax.addEventListener("abort", abortHandler, false);
  ajax.open("POST", "file_upload_parser.php");
  ajax.send(formdata);
}

function progressHandler(event){
  _("loaded_n_total").innerHTML = "Uploaded "+event.loaded+" bytes of "+event.total;
  var percent = (event.loaded / event.total) * 100;
  _("progressBar").value = Math.round(percent);
  _("status").innerHTML = Math.round(percent)+"% uploaded... please wait";
}

function completeHandler(event){
  _("status").innerHTML = event.target.responseText;
  _("progressBar").value = 0;
}

function errorHandler(event){
  _("status").innerHTML = "Upload Failed";
}

function abortHandler(event){
  _("status").innerHTML = "Upload Aborted";
}
</script>
</head>
<body>
<h2>HTML5 File Upload Progress Bar Tutorial</h2>
<form id="upload_form" enctype="multipart/form-data" method="post">
 <input type="file" name="file1" id="file1"><br>
 <input type="button" value="Upload File" onclick="uploadFile()">
 <progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
 <h3 id="status"></h3>
 <p id="loaded_n_total"></p>
</form>
</body>
</html>

file_upload_parser.php:

<?php
$fileName = $_FILES["file1"]["name"]; // The file name
$fileTmpLoc = $_FILES["file1"]["tmp_name"]; // File in the PHP tmp folder
$fileType = $_FILES["file1"]["type"]; // The type of file it is
$fileSize = $_FILES["file1"]["size"]; // File size in bytes
$fileErrorMsg = $_FILES["file1"]["error"]; // 0 for false... and 1 for true
if (!$fileTmpLoc) { // if file not chosen
  echo "ERROR: Please browse for a file before clicking the upload button.";
  exit();
}
if(move_uploaded_file($fileTmpLoc, "test_uploads/$fileName")){
  echo "$fileName upload is complete";
} else {
  echo "move_uploaded_file function failed";
}
?>

以上就是本文的全部内容,希望对大家的学习有所帮助。

PHP 相关文章推荐
新浪新闻小偷
Oct 09 PHP
PHP产生随机字符串函数
Dec 06 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
PHP explode()函数用法、切分字符串
Oct 03 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
PHP判断是否连接上网络的方法
Jul 01 PHP
一张表搞清楚php is_null、empty、isset的区别
Jul 07 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
Oct 18 PHP
TP5框架简单登录功能实现方法示例
Oct 31 PHP
php $_SESSION会员登录实例分享
Jan 19 #PHP
PHP实现163邮箱自动发送邮件
Mar 29 #PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
Mar 29 #PHP
PHP创建word文档的方法(平台无关)
Mar 29 #PHP
PHP中key和current,next的联合运用实例分析
Mar 29 #PHP
CodeIgniter基于Email类发邮件的方法
Mar 29 #PHP
PHP中抽象类、接口的区别与选择分析
Mar 29 #PHP
You might like
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
最短的IE判断代码
2011/03/13 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
Django实现celery定时任务过程解析
2020/04/21 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
一个入门级python爬虫教程详解
2021/01/27 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
汇科协同Java笔试题
2012/03/31 面试题
计算机网络专业推荐信
2013/11/24 职场文书
优秀教师工作感言
2014/02/16 职场文书
《将心比心》教学反思
2014/04/08 职场文书
股票投资建议书
2014/05/19 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
营业员岗位职责范本
2015/04/14 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
Python使用openpyxl模块处理Excel文件
2022/06/05 Python