我正在尝试使用PECL uploadprogress扩展来实现一个非常基本的AJAX上传进度条。我发现这个示例代码适用于所有浏览器:http://svn.php.net/viewvc/pecl/uploadprogress/trunk/examples/。它使用iframe来编写更新。我想得到更新并做一些jquery来构建进度条。这是我的代码(我知道我没有写代码来说明上传结束的时间)client.php:
<?php
$id = md5(microtime() . rand());
?>
<!DOCTYPE html>
<html>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
function getProgress(){
$.get("progress.php", {"ID":'<?php echo $id ?>'}, function(data){
console.log(data);
});
window.setTimeout(getProgress(), 5000);
}
</script>
<body>
<form onsubmit="getProgress()" target="_self" enctype="multipart/form-data" method="post">
<input type="hidden" name="UPLOAD_IDENTIFIER" value="<?php echo $id;?>" />
<label>Select File:</label>
<input type="file" name="file" />
<br/>
<label>Select File:</label>
<input type="file" name="file2" />
<br/>
<label>Upload File:</label>
<input id="submitButton" type="submit" value="Upload File" />
</form>
</body>
</html>
并且progress.php:
<?php
if (function_exists("uploadprogress_get_info")) {
$info = uploadprogress_get_info($_GET['ID']);
} else {
$info = false;
}
$progress = ($info['bytes_uploaded']/$info['bytes_total'])*100;
echo $progress;
我输出错误,所有打印都是0。有什么想法吗?
答案 0 :(得分:1)
尝试替换
$progress = ($info['bytes_uploaded']/$info['bytes_total'])*100;
带
$progress = ($info['bytes_uploaded']*100)/$info['bytes_total'];
$info['bytes_uploaded']
和$info['bytes_total']
都是整数,因此除法不是浮点数,而是向下舍入为整数。