私は、php POST を使用してファイルをサーバーにアップロードするサイトで作業しており、アップロードに進行状況バーを追加しようとしています。私はこのガイドに従いました:
http://www.ultramegatech.com/2010/10/create-an-upload-progress-bar-with-php-and-jquery/
IEとFirefoxでうまく機能します。しかし、プログレスバーはクロムで更新されません。
この関数は、「500」のタイムアウトで呼び出されます。
function updateProgress(id) {
var time = new Date().getTime();
// Make a GET request to the server
// Pass our upload identifier as a parameter
// Also pass current time to prevent caching
$.get('progressbar.php', { uid: id, t: time }, function (data) {
// Get the output as an integer
var progress = parseInt(data, 10);
if (progress < 100 || !started) {
var div = document.getElementById('statusfield');
div.innerHTML = progress + '%';
// Determine if upload has started
started = progress < 100;
// If we aren't done or started, update again
updateProgress(id);
}
if (progress > 99) {
var div = document.getElementById('statusfield');
div.innerHTML = 'Komprimerar fil...';
}
// Update the progress bar percentage
// But only if we have started
started && pbar.progressbar('value', progress);
});
}
この関数は、アップロードの進行状況をパーセンテージで返す .php ファイル「progressbar.php」を呼び出します。
プログレスバー.php:
<?php
if (isset($_GET['uid'])) {
// Fetch the upload progress data
$status = uploadprogress_get_info($_GET['uid']);
if ($status) {
// Calculate the current percentage
echo round($status['bytes_uploaded']/$status['bytes_total']*100);
}
else {
// If there is no data, assume it's done
echo 100;
}
}
?>
コードを chrome でテストしたところ、関数「updateProgress」が呼び出されました。しかし、それは決して過ぎません:
$.get('progressbar.php', { uid: id, t: time }, function
何が間違っているのか、誰にも手がかりがありますか?
ありがとう!