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 09 PHP
PHP 开发环境配置(Zend Studio)
Apr 28 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
Jun 19 PHP
使用PHPExcel操作Excel用法实例分析
Mar 26 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
Sep 29 PHP
php实现面包屑导航例子分享
Dec 19 PHP
smarty模板数学运算示例
Dec 11 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 PHP
PHP ElasticSearch做搜索实例讲解
Feb 05 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
Prototype中dom对象方法汇总
2008/09/17 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
个人简历自我评价八例
2013/10/31 职场文书
幼儿园中班上学期评语
2014/04/18 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
道德模范事迹材料
2014/12/20 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
写给领导的感谢信
2015/01/22 职场文书
小学班主任个人总结
2015/03/03 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
党员证明信
2015/06/19 职场文书
运动会200米广播稿
2015/08/19 职场文书
使用python求解迷宫问题的三种实现方法
2022/03/17 Python