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 intval的测试代码发现问题
Jul 27 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
PHP5中虚函数的实现方法分享
Apr 20 PHP
php记录日志的实现代码
Aug 08 PHP
PHP连接MongoDB示例代码
Sep 06 PHP
php全排列递归算法代码
Oct 09 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
php连接mysql数据库
Mar 21 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 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
大师制作的中短波矿石收音机
2020/04/02 无线电
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
python动态加载包的方法小结
2016/04/18 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
Django实现表单验证
2018/09/08 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
Django models filter筛选条件详解
2020/03/16 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
电大自我鉴定
2013/10/27 职场文书
俄语专业毕业生推荐信
2013/10/28 职场文书
迎七一演讲稿
2014/09/12 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
学习党史心得体会2016
2016/01/23 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python
方法汇总:Python 安装第三方库常用
2022/04/26 Python