4

Uploadifyを使用してファイルをアップロードしています。問題は、これらのファイルの処理中にエラーが発生したことをユーザーに通知する必要があることです。

Uploadify にはonErroronComplete、およびonAllCompleteイベント ハンドラがありますが、これらのイベントをトリガーして何が起こっているかをユーザーに知らせる方法がわかりません。

JSON 文字列を送信する必要がありますか? ここここここに手がかりがありますが、うまくいきませんでした。おそらく、フォーラムの投稿は古くなっています。

Uploadify 2.1で動作する例はありますか?

4

3 に答える 3

4

onErroruploadify のオプションに含まれます:

$("#fileInput").uploadify({
  onError: function(e, q, f, o) {
    alert("ERROR: " + o.info);
  }
});

ドキュメントから

アップロード処理中にエラーが発生した場合にトリガーされる関数。既定のイベント ハンドラーは、エラーを返すキュー アイテムにエラー メッセージを添付し、そのキュー アイテム コンテナーを赤に変更します。

4 つの引数が関数に送信されます。

  • event : イベント オブジェクト。
  • queueID : エラーを返したファイルの一意の識別子。
  • fileObj : 選択されたファイルに関する詳細を含むオブジェクト。
    • name – ファイルの名前
    • size – ファイルのバイト単位のサイズ
    • creationDate – ファイルが作成された日付
    • modifiedDate – ファイルが最後に変更された日付
    • type – 「.」で始まるファイル拡張子</li>
  • errorObj : 返されたエラーの詳細を含むオブジェクト。
    • タイプ– 「HTTP」、「IO」、または「セキュリティ」のいずれか</li>
    • info – 返されたエラーのタイプを説明するエラー メッセージ
于 2010-01-10T06:18:48.553 に答える
2

これは私を殺していましたが、方法を見つけました。uploadify.php ファイルで、すべての検証を作成しました。ここでの違いは、エラーの種類ごとに HTTP 4xx コードを設定したことです。

if (! in_array($fileParts['extension'], $typesArray)) {
    header("HTTP/1.1 405"); //any 4XX error will work
    exit();
}

これにより、uploadify.js に「405」エラーがスローされます。

$("#fileInput").uploadify() を設定したファイルで、「onError」関数を追加しました。

        'onError' : function(event, ID, fileObj, errorObj) {
        var r = "<br />ERROR: ";
        switch(errorObj.info) {
        case 405:
            r += "Invalid file type.";
            break;
        case 406:
            r += "Some other error.";
            break;
        }

        setTimeout('$("#fileInput'+ ID + 'span.percentage").html("'+r+'");',111);
    }

これにより、uploadify のデフォルト関数が強制的に存在し、拡張されます。

この助けを願っています!

于 2010-03-26T16:35:38.317 に答える
0
onError: function (a, b, c, d) {
         if (d.status == 404)
            alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
         else if (d.type === "HTTP")
            alert('error '+d.type+": "+d.status);
         else if (d.type ==="File Size")
            alert(c.name+' '+d.type+' Limit: '+Math.round(d.sizeLimit/1024)+'KB');
         else
            alert('error '+d.type+": "+d.text);
},
于 2010-08-28T06:31:35.810 に答える