在普通的javascript中非常简单:只需将回调附加到 {XMLHTTPRequest}.onprogress
var xhr = new XMLHttpRequest();
xhr.onprogress = function(e){
if (e.lengthComputable)
var percent = (e.loaded / e.total) * 100;
};
xhr.open('GET', 'http://www...', true);
xhr.onreadystatechange = function() {
...
};
xhr.send(null);
Run Code Online (Sandbox Code Playgroud)
但我正在做一个用JQuery($.get()
或$.ajax()
)下载html数据的ajax网站,我想知道哪个是获取请求进度的最佳方式,以便用一点进度条显示它,但奇怪的是,我不是在JQuery文档中找到任何有用的东西......
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input name="uploaded" type="file" />
<input type="submit" value="Upload" />
</form>
<?php
if(isset($_REQUEST['submit'])){
$target = "data/".basename( $_FILES['uploaded']['name']) ;
move_uploaded_file($_FILES['uploaded']['tmp_name'], $target);
}
?>
Run Code Online (Sandbox Code Playgroud)
我非常了解Javascript,AJAX和JQuery等,我相信可以使用PHP,AJAX和Javascript等创建上传进度条.
我很惊讶如何在上传过程中获取上传的大小(意味着我想知道的每一秒,上传了多少文件以及剩余多少,我认为应该可以使用AJAX等)文件.
这是PHP手册的链接,但我不明白:http: //php.net/manual/en/session.upload-progress.php
有没有其他方法使用PHP和AJAX显示上传进度条但不使用PHP的任何外部扩展?我无权访问php.ini