您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP+Ajax如何实现上传文件进度条动态显示进度

2024/5/16 10:06:28发布22次查看
说个前提:
php配置文件中规定默认上传文件大小限制2m以下,如需上传大文件需同时更改php.ini中的upload_max_filesize和max_execution_time以及post_max_size的值。
相关推荐:《php教程》
主界面以及ajax实现:
index.html
<!doctype html><html><head><meta charset="utf-8"><title>上传文件</title><script type="text/javascript">function sub() {var obj = new xmlhttprequest();obj.onreadystatechange = function() {if (obj.status == 200 && obj.readystate == 4) {document.getelementbyid('con').innerhtml = obj.responsetext;}} // 通过ajax对象的upload属性的onprogress事件感知当前文件上传状态obj.upload.onprogress = function(evt) {// 上传附件大小的百分比var per = math.floor((evt.loaded / evt.total) * 100) + "%";// 当上传文件时显示进度条document.getelementbyid('parent').style.display = 'block';// 通过上传百分比设置进度条样式的宽度document.getelementbyid('son').style.width = per;// 在进度条上显示上传的进度值document.getelementbyid('son').innerhtml = per;} // 通过formdata收集零散的文件上传信息var fm = document.getelementbyid('userfile3').files[0];var fd = new formdata();fd.append('userfile', fm); obj.open("post", "upload.php");obj.send(fd);}</script><style type="text/css">#parent {width: 200px;height: 20px;border: 2px solid gray;background: lightgray;display: none;}#son {width: 0;height: 100%;background: lightgreen;text-align: center;}</style></head><body><h2>ajax实现进度条文件上传</h2><div id="parent"><div id="son"></div></div><p id="con"></p><input type="file" name="userfile" id="userfile3"><br><br><input type="button" name="btn" value="文件上传" οnclick="sub()"></body></html>
php处理上传文件:upload.php
<?php // 上传文件进行简单错误过滤if ($_files['userfile']['error'] > 0) {exit("上传文件有错".$_files['userfile']['error']);} // 定义存放上传文件的真实路径$path = './upload/';// 定义存放上传文件的真实路径名字$name = $_files['userfile']['name']; // 将文件的名字的字符编码从utf-8转成gb2312$name = iconv("utf-8", "gb2312", $name); // 将上传文件移动到指定目录文件中if (move_uploaded_file($_files['userfile']['tmp_name'], $path.$name)) {echo "文件上传成功";} else {echo "文件上传失败";} ?>
以上就是php+ajax如何实现上传文件进度条动态显示进度的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product