2012-06-05 17 views
5

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

デフォルトの動作では、ユーザーがファイルを選択した直後にアップロードを開始します。私はこれを防ぐために、ファイルを選択した後、別の "アップロード"ボタンをクリックしたときにアップロードをトリガーします。

コードを見て、アップロードがファイル入力に添付されたchangeイベントで開始されていることがわかりました。私はonSubmit関数にするreturn false;を追加することによって開始し、その後、変更イベントをトリガーし、別のボタンにクリックイベントを取り付ける:動作しません

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

。もう一度ファイルメニューを開くだけです。

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

答えて

3

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

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(); 

を呼び出しますあなたのqq.FileUploader()オブジェクト。助け:)

+1

現在のバージョンのFine Uploaderは、APIを使用して手動でトリガーされたアップロードをサポートしています。コードをもう修正する必要はありません。 –

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

+0

このソリューションはValumsアップローダ用ではありません。Valumns File Uploader – Sanchitos

+1

@Sanchitos:私はValums "fine"アップローダなど何も見つかりません..私はValums "ファイル"アップローダと確信しています – casper123

+3

バージョン2以降、 Fine Uploader:http://fineuploader.com/と呼ばれていますが、githubプロジェクトはまだ「ファイルアップロード」と呼ばれています。 – mhu

関連する問題