0

ユーザーにとって単一ファイルのアップロードを改善しようとしています。現在、すべての画像アップロードにUploadifyを使用しています。Uploadify コントロールと、ユーザーが画像にコメントを追加できるテキスト ボックスを含むポップアップ ダイアログがあります。

Uploadify をアップロードごとに 1 つのファイルに制限するように設定multi=falseしました。queueSizeLimit=1そのため、ファイルがキューに存在し、ユーザーが別のファイルを選択しようとすると、アラート メッセージが表示されます。The number of files selected exceeds the remaining upload limit (0)

このデフォルトの動作をオーバーライドして、キュー内のファイルを置き換えたいと考えています。(現在アップロードされていない場合)。これは、私のユーザーが望んでいる便利な機能です。キュー内のファイルを手動でキャンセルする必要がなくなります。

この動作を実装する方法を知っている人はいますか?

4

1 に答える 1

3

これが私の解決策です:

var selectedFile = null;
$('#example').uploadify({       
    'swf'           : 'uploadify.swf',
    'uploader'      : 'uploadify.php',
    'cancelImg'     : 'cancel.png',
    'multi'         : false,
    'auto'          : false,
    'onSelect'      : function(file) {
        if(selectedFile !== null) {
            $('#example').uploadify("cancel",selectedFile.id);
        }
        selectedFile = file;
    },
    'onCancel' : function(file) {
        $("#" + file.id).hide();
    }

});

まず、外側のスコープに var を設定して、選択した 1 つのファイルを追跡し、最初は null に設定します。

multi一度に 1 つのファイルのみを選択できるように falseに設定し、onSelect関数を使用して、前にキューに入れられたファイルがあればそれをキャンセルした後、selectedFile 変数を設定します。

onCancelファイルをキャンセルすると、デフォルトではファイルにキャンセル済みのラベルが付けられ、少し遅れてフェードアウトするため、ここでも関数を設定しました。代わりに、そのファイルのアップロード バーをすぐに非表示にして、ファイルがスワップ アウトされたかのように見せます。実際に行っているのは、別のファイルをキューに追加してから前のファイルを削除することです。

于 2012-11-21T10:52:45.170 に答える