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 相关文章推荐
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
CI框架装载器Loader.php源码分析
Nov 04 PHP
PHP判断是否连接上网络的方法
Jul 01 PHP
php简单复制文件的方法
May 09 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
Sep 02 PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
PHP应用跨时区功能的实现方法
Mar 21 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 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
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
两个php日期控制类实例
2014/12/09 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
angular实现IM聊天图片发送实例
2017/05/08 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
python下如何让web元素的生成更简单的分析
2008/07/17 Python
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
女性时尚网购:Chic Me
2019/07/30 全球购物
KTV门卫岗位职责
2014/10/09 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
工作时间证明
2015/06/15 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis
bose降噪耳机音能消除人声吗
2022/04/19 数码科技