私はfilepicker.makeDropPane
いくつかの簡単なアップロードで遊んでいます。filepicker.io のWeb ドキュメントのドキュメントで見つけられないことの 1 つは、進行中のアップロードをキャンセルする方法です。
onStart
直感的に、関数には追加のパラメーターを渡す必要があると感じています。cancel()
呼び出されるとすぐにファイルのアップロードをキャンセルする機能を持つアップロードを表すオブジェクト。このようなものは利用できないようです。
私はfilepicker.makeDropPane
いくつかの簡単なアップロードで遊んでいます。filepicker.io のWeb ドキュメントのドキュメントで見つけられないことの 1 つは、進行中のアップロードをキャンセルする方法です。
onStart
直感的に、関数には追加のパラメーターを渡す必要があると感じています。cancel()
呼び出されるとすぐにファイルのアップロードをキャンセルする機能を持つアップロードを表すオブジェクト。このようなものは利用できないようです。
実際にはまだこの機能はありませんが、理にかなっています。これらの線に沿って何かを追加することを検討し、お知らせします
これは、不要な返されたファイルや、進行状況や複数のファイルなどに関するその他の凝ったものから保護するために私が見つけた醜いハックです.静的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 を追加できます。これは、終了するまで存在します。
繰り返しますが、これはハックです! 壊れないと信じないでください。