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+MYSQL 出现乱码的解决方法
Aug 08 PHP
改写函数实现PHP二维/三维数组转字符串
Sep 13 PHP
php 不使用js实现页面跳转
Feb 11 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
php实现俄罗斯乘法实例
Mar 07 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
php设计模式之单例模式代码
Jun 11 PHP
php 静态属性和静态方法区别详解
Apr 09 PHP
PHP判断密码强度的方法详解
May 26 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 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者的疑难问答(1)
2006/10/09 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
jquery中的事件处理详细介绍
2013/06/24 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
讲解Python中的标识运算符
2015/05/14 Python
python正则实现计算器功能
2017/12/14 Python
Python基于FTP模块实现ftp文件上传操作示例
2018/04/23 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
python tkinter组件使用详解
2019/09/16 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
Python递归函数特点及原理解析
2020/03/04 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
HTTP状态码详解
2021/03/18 杂记
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
上班迟到检讨书范文300字
2014/11/02 职场文书
表扬稿范文
2015/01/17 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js