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

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

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

说个前提:

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) {@[email protected]('con').INNERHTML = obj.responseText;}} // 通过AJAX对象的upload属性的onprogress事件感知当前文件上传状态obj.upload.onprogress = function(evt) {// 上传附件大小的百分比var per = Math.floor((evt.loaded / evt.total) * 100) + "%";// 当上传文件时显示进度条@[email protected]('parent').style.display = 'block';// 通过上传百分比设置进度条样式的宽度@[email protected]('son').style.wIDth = per;// 在进度条上显示上传的进度值@[email protected]('son').INNERHTML = per;} // 通过FormData收集零散的文件上传信息var fm = @[email protected]('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如何实现上传文件进度条动态显示进度全部内容,希望文章能够帮你解决PHP+Ajax如何实现上传文件进度条动态显示进度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/997933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存