3

私はfilepicker.makeDropPaneいくつかの簡単なアップロードで遊んでいます。filepicker.io のWeb ドキュメントのドキュメントで見つけられないことの 1 つは、進行中のアップロードをキャンセルする方法です。

onStart直感的に、関数には追加のパラメーターを渡す必要があると感じています。cancel()呼び出されるとすぐにファイルのアップロードをキャンセルする機能を持つアップロードを表すオブジェクト。このようなものは利用できないようです。

4

2 に答える 2

2

実際にはまだこの機能はありませんが、理にかなっています。これらの線に沿って何かを追加することを検討し、お知らせします

于 2012-10-18T06:11:11.173 に答える
0

これは、不要な返されたファイルや、進行状況や複数のファイルなどに関するその他の凝ったものから保護するために私が見つけた醜いハックです.静的jsファイルインクルードを使用して、変更されないようにしてください.

これを進行ハンドラーで使用します。

var event = event || window.event;

// For firefox, go and grab the XHR progress event object.                                                                                                                                                                                
if (typeof event == 'undefined' || event == null) {
    if (typeof arguments.callee.caller.arguments[0] == 'object') {
        event = arguments.callee.caller.arguments[0];
    }
    else {
        event = arguments.callee.caller.arguments.callee.caller.arguments.callee.caller.arguments[0];
    }
}

var sUploadId;

     if (event.type.toLowerCase() == 'progress') {
        // if we haven't already tagged this XHR object (one per file), tag it now                                                                                                                                                 
        // if we receive further progress from this file, it will already have been tagged                                                                                                                                                

        if (!('id' in event.currentTarget)) {
            sUploadId = goUploadProgress.files.length;
            event.currentTarget.id = sUploadId;
            goUploadProgress.files.push({id: sUploadId, total:event.total});
        }
        else {
            sUploadId = event.currentTarget.id;
        }

        // get the loaded bytes for this file                                                                                                                                                                                             
        goUploadProgress.files[sUploadId].loaded = event.loaded;
    }
    else {
        // ignore readystatechange events                                                                                                                                                                                                  
        return;
    }

このコンテキストでより意味のあるものに変更したため、論理的な間違いを犯した可能性がありますが、これが要点です。コール スタックを調べることで Firefox でイベントを取得できます。また、各ファイルの XHR アップロード オブジェクトに ID を追加できます。これは、終了するまで存在します。

繰り返しますが、これはハックです! 壊れないと信じないでください。

于 2013-12-18T15:16:21.180 に答える