进度条即计算机在处理任务时,实时的,以图片形式显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间,一般以长方形条状显示。这篇文章主要介绍了php ajax实现文件上传进度条的相关资料,需要的朋友可以参考下,本实例是关于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+ajax实现文件上传进度条效果示例代码的详细内容。
