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 相关文章推荐
PHP4之COOKIE支持详解
Oct 09 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
Mar 18 PHP
详细解读PHP中接口的应用
Aug 12 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
PHP 的比较运算与逻辑运算详解
May 12 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 PHP
Laravel学习教程之路由模块
Aug 18 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
php探针使用原理和技巧讲解
Sep 17 PHP
PHP数组对象与Json转换操作实例分析
Oct 22 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中HTML标签过滤技巧
2014/01/07 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
js同时按下两个方向键
2007/12/01 Javascript
javascript算法学习(直接插入排序)
2011/04/12 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
echarts整合多个类似option的方法实例
2018/07/10 Javascript
浅谈js闭包理解
2019/04/01 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
python实现批量改文件名称的方法
2015/05/25 Python
Python中标准库OS的常用方法总结大全
2017/07/19 Python
python简单实例训练(21~30)
2017/11/15 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
毕业生个人求职信范文分享
2014/01/05 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
二手车转让协议书
2015/01/29 职场文书
公司开业致辞
2015/07/29 职场文书