3

私は、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

何が間違っているのか、誰にも手がかりがありますか?

ありがとう!

4

1 に答える 1

1

Chrome で開発ツール ([オプション] -> [ツール] -> [開発者ツール]) に移動し、ネットワーク パネルを確認します。$.get メソッドが呼び出されると、リクエストと結果が表示されます - リクエストが失敗したかどうか (たとえば、404 が発生した場合) を確認できるため、chrome がアドレスを適切に設定していないか、送信されたデータが返されたかどうかを確認できます。データがうまくいきません。

于 2013-07-03T08:01:10.023 に答える