バージョン

WebUpload クライアント側イベント

WebUpload コントロールは、多くのイベントを装備するリッチ クライアント側 API 機能を公開します。7 種類のクライアント側イベントがあります。これらは、ユーザーがコントロールを操作している時やアップロード処理中に発生します。

WebUpload でクライアント側イベントに添付

WebUpload の ClientEvents タグに関数名を定義してハンドラーを添付します。次に、イベントを処理するために同じ値で JavaScript 関数を作成する必要があります。

たとえば、fileSelecting イベントを検討してください。このイベントについては「クライアント イベント」 セクションで後述します。

ASPX の場合:
<script type="text/javascript" language="javascript">
 function fileSelecting(e, args) {
 }
</script>
<igjq:WebUpload ID="webUpload1" runat="server">
 <ClientEvents FileSelecting="fileSelecting"/>
</igjq:WebUpload>

添付されたハンドラー内で、必要なロジックを実装できます。このためにイベントの属性を使用できます。これはすべてのイベントに同じ名前が付けられます。イベントには - e、引数には args です。イベントによっては、 args 引数に異なるプロパティセットが含まれる場合があります。

注: イベントをキャンセルしたい場合 (キャンセル可能なイベントは、fileSelecting および fileUploading)、関数から false を返す必要があるだけです。注: イベントをキャンセルしたい場合(キャンセル可能なイベントは、fileSelecting および fileUploading )、関数から false を返す必要があるだけです。

クライアント イベント

表 1: igUpload コントロールで使用できるクライアント イベント

イベント名 説明

fileSelecting

fileSelecting イベントは、参照ボタンがクリックされた直後に発生します。このイベントが発生すると、参照ウィンドウを作成する処理をキャンセルできます。

args 属性は、fileSelecting イベントが発生すると空になります。キャンセルされると(関数から false が返される)参照ダイアログは表示されません。

fileSelected

fileSelected イベントは、ブラウザーのポップアップ ウィンドウからファイルが選択された直後に発生します。

選択すると、イベント引数はこのファイルに関するいくつかの基本情報をすでに取得します。args オブジェクトには以下の 2 つのプロパティがあります:

fileID: ファイルごとに連番が付けられ、0 から始まります。これは複数ファイルのアップロード シナリオに有用で、ID を使用して異なるファイルを識別できます。

filePath: 選択したファイルの名前。

注: fileSelecting および fileSelected イベントの発生サイクルは、ファイルが追加されると繰り返されます。

fileUploading

fileUploading イベントは、アップロード処理中およびファイルのアップロード中に発生します。このイベントはキャンセルできます。

ファイルのアップロード ボタンが押されて初めてこのイベントが起動されます。次に、progressUpdateInterval 値に基づき(最新の情報に更新する期間を決定する)、fileUploading イベントが再び発生します。

この時点で、イベント args には以下の情報が含まれます:

fileID: ファイルごとに連番が付けられ、0 から始まります。これは複数ファイルのアップロード シナリオに有用で、ID を使用して異なるファイルを識別できます。

filePath: 選択したファイルの名前。

fileStatus: ファイルの状態を表す整数。この値は、サーバーによって決定され、この場合状態の説明に整数値をマップする列挙体です。詳細については、表 2 を参照してください。

TotalSize: アップロードするすべての選択したファイルの合計ファイル サイズを返します。メトリックはバイトです。

UploadedBytes: fileUpload イベントが発生した時に現在アップロードされているバイト総数を返します。

イベント ハンドラー メソッドで false 値を返すことで、このイベントをキャンセルすることもできます。

fileUploaded

fileUploaded イベントは、すべてのファイルがサーバーにアップロードされた時に発生します。このイベントが発生すると、args パラメーターには fileID、filePath、および TotalSize の 3 つのパラメーターが含まれます。これらの項目の詳細は、fileUploading イベントを参照してください。

fileUploadAborted

fileUploadAbort イベントは、各ファイルに関連付けられたキャンセル ボタンを使用して、個々のファイルのアップロードをキャンセルする場合に発生します。このイベント args オブジェクトには、fileUploading 引数と同じプロパティが含まれますが、唯一の違いは、状態がキャンセルされたファイルの値を伴うことです。

cancelAllClicked

cancelAllClicked イベントは、すべてのアップロードされたファイルに有効なグローバル キャンセル ボタンをユーザーがクリックした場合、アップロード処理中に発生します。

onError

onError イベントは、例外がサーバー側またはクライアント側でスローされた場合に発生します。

イベント args には以下の情報が含まれます。

errorCode: エラー コードを表す整数。表 3 はサーバー側のエラー コード、表 4 はクライアント側のエラー コードを説明します。

errorMessage: エラー情報の詳細。

errorType: エラーのタイプで、この値はサーバー側またはクライアント側のいずれかに指定できます。

serverMessage: これは、サーバー イベント UploadStarting 中に設定できるプロパティです。存在しなければ、空の文字列となります(カスタムのエラー メッセージを表示するためにこれを使用できます)。

注: アップロードの状態をモニターするために onError イベントにハンドラーを添付したい場合があることに注意してください。サーバーでエラーが発生すると、このイベントが発生し、errorCode は操作による基本的な問題を公開します。さらに、ローカライズされたエラーの説明を見つけるには、ローカライズされた JavaScript ファイルを使用することもできます。これは ig.ui.upload-en.js および ig.ui.upload-jp.js です。これらのファイルでエラーのユーザー固有の文字列を定義することもできます。

onFormDataSubmit

onFormDataSubmit イベントは、アプロードされるファイルおよび追加データ (がある場合) がサーバーに送信される前に発生されます。FormData オブジェクトに追加データ フィールドを追加するために使用します。

イベント引数は以下の情報を含みます:

フィールド: ファイルの一意識別子を取得します。

fileId: ファイルの一意識別子を取得します。

fileInfo: fileName、fileSize、serverMessage などの情報を含む fileInfo オブジェクトへの参照を取得します。

xhr: ブラウザーが HTML 5 ファイル API をサポートする場合、元の XMLHttpRequest オブジェクトへの参照を取得します。サポートしない場合は未定義です。

formData: ブラウザーが HTML 5 ファイル API をサポートする場合、FormData オブジェクトへの参照、または < form > の jQuery 表現への参照を取得します。

onXHRLoad

XmlHttpRequest の onload イベントが発生されたときに onXHRLoad イベントが発生されます。ブラウザーが HTML5 API をサポートする場合にのみ、イベントが発生されます。

以下の表は、サーバーから返されるメッセージ コードとそれに対応する意味です。

表 2: タイプ * UploadStatus の列挙体

説明

0

ファイルはまだ開始されていません

1

ファイルのアップロードが開始されました

2

ファイルのアップロードが終了しました

3

ファイルが見つかりません - この状態は、ディクショナリに当該のキーが見つからない場合に使用されます。

4

クライアント コマンドにより、ファイルのアップロードをキャンセルします

5

ファイルのサイズが超過しました

6

ファイルのアップロード中にエラーが発生しました

7

ファイルのアップロードがサーバー側イベント ハンドラーからキャンセルされました

8

ファイルのアップロードが、クライアント接続の切断によってキャンセルされました

9

コンテンツ全体がアップロードされましたが、ファイルが未だ一時的なファイル名である場合のファイルの状態です

表 3: タイプ * FileError の列挙体(サーバー側のエラー)

説明

-1

エラーはありません

0

要求からファイル名を取得する際にファイル エラーが発生しました

1

MIME タイプの検証に失敗しました

2

ファイル サイズを超えています

3

ファイルがアップロードされる一時フォルダーが見つかりませんでした

4

要求ヘッダーの取得中にエラーが発生しました

5

要求で指定されたキーのファイルは存在しません

6

ファイルの保存に失敗しました

7

ファイル コンテンツの書き込みに失敗しました

8

ファイル コンテンツを初めて書き込む際にエラーが発生しました

9

ファイルの削除に失敗しました

10

イベント ハンドラーでファイルのアップロード開始時にアップロードがキャンセルされたときにエラーが発生しました

表 4: タイプ FileError の列挙体(クライアント側のエラー コード)

説明

1

アップロード ファイルで許可される最大容量を超えています

2

クライアント側拡張子の検証

3

id が存在しないファイルのアップロードを開始しようとした時にエラーがスローされました

4

ファイルの状態の取得中に Ajax エラーが発生しました

5

httpHandler でキャンセル コマンドを呼び出している時に Ajax エラーが発生しました

6

id が存在しないファイルのアップロードを解除しようとした時にエラーが発生しました

7

ファイル サイズの取得中に Ajax エラーが発生しました

8

ファイルがキャンセルおよび maxSimultaneousFilesUploads が可能かどうかをチェックしている時にエラーがスローされました

0 以下です