0

ドキュメントによると、 Uploadify と totalBytesUploaded は次のように機能します。

「現在のアップロード操作でアップロードされた合計バイト数 (すべてのファイル)」

totalBytesUploaded がクリアされないことを発見しました。いくつかのファイルをアップロードするたびに、前回停止したところから続行します。これにより、パーセントを計算するときに役に立たなくなります。

例: 4 つのファイルをアップロードするとします。4 つのファイルすべてがアップロードされると、バイト カウントは 55675964 バイトで停止します。次に、別のファイルをアップロードすると、バイト数は 55675964 から 68502886 バイトまで続きます。アップロードするファイルごとに常に大きくなります。これは正しいですか、それともここで何か不足していますか?

4

1 に答える 1

0

同じ問題を抱えていたので、解決したと思います。少なくとも私の現在のニーズに合うように。関数内に uploadify-code をラップするだけです。関数を呼び出して初期化し、関数の呼び出しで onQueueComplete を追加します。したがって、uploadify が再初期化され、totalBytesUploaded がリセットされます。

<script type="text/javascript">
    var p = 0;
    function initUploadify() {
        $('#progress').width('0%');
        $(function() {
            $('#file_upload').uploadify({
               'swf'      : 'js/uploadify/uploadify.swf',
               'uploader' : 'js/uploadify/uploadify.php',
               'buttonText' : 'Select files',
               'width'    : 90,
               'multi'      : true,
               'queueID'  : 'q',
               'onUploadProgress' : function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) {
                    p = Math.round(( totalBytesUploaded / totalBytesTotal) * 100);
                    $('#progress').width(p+'%');
               },
               'onQueueComplete' : function(queueData) {
                    initUploadify();
               }
           }
           });
        });
    }

    initUploadify();

</script>
于 2013-11-05T11:35:54.247 に答える