5

Valums Ajaxファイルアップローダーを使用している場合、アップロードをトリガーするにはどうすればよいですか?

デフォルトの動作では、ユーザーがファイルを選択した直後にアップロードが開始されます。これが起こらないようにしたいのですが、代わりに、ユーザーがファイルを選択した後で別の[アップロード]ボタンをクリックしたときにアップロードをトリガーします。

コードを調べたところchange、ファイル入力に添付されたイベントからアップロードが開始されることがわかりました。まず、関数ににを追加return false;onSubmit、次に、変更イベントをトリガーした別のボタンにクリックイベントをアタッチしました。

$('#startUpload').on('click', function() {  
    // some conditionals
    $('input[name="file"]').trigger('change');  
});

それはうまくいきません。ファイルメニューを再度開くだけです。

ユーザーがファイルを選択した直後にアップロードが発生するのを防ぎ、代わりにユーザーが別のボタンをクリックしたときにファイルをトリガーするにはどうすればよいですか?

4

2 に答える 2

3

このためには、file-uploader.jsファイルを変更する必要があります。309行目で、onChange関数を変更してfalseを返します。次に、その上に次の関数を追加して、コードが次のようになるようにします。

startUpload: function(){
    this._onInputChange(this._button.getInput());
},
_createUploadButton: function(element){
    var self = this;

    return new qq.UploadButton({
        element: element,
        multiple: this._options.multiple && qq.UploadHandlerXhr.isSupported(),
        onChange: function(input){
            return false;
        }
    });
},

次に、HTMLファイルで、ボタンクリックまたはその他のイベント内で、

uploader.startUpload();

ここで、uploaderはqq.FileUploader()オブジェクトの名前です。

お役に立てば幸いです:)

于 2012-06-05T19:39:13.960 に答える
2

Valums Ajaxファイルアップローダーがこの機能をサポートするようになりました。ボタンをクリックすると、ファイルをキューに入れてアップロードをトリガーできます

 var uploader2 = new qq.FileUploader({
    element: $('#manualUploadModeExample')[0],
    action: "success.html",
    autoUpload: false,
    demoMode: true,
    uploadButtonText: "Select Files"
});

$('#triggerUpload').click(function() {
    uploader2.uploadStoredFiles();
});

詳細については、次のリンクを確認してください:valums file uploder

于 2012-09-15T07:57:09.013 に答える