如何使用Valums Ajax File-Uploader触发上传文件?

时间:2012-06-05 03:48:25

标签: javascript jquery html ajax

使用Valums Ajax文件上传器时,如何触发上传?

默认行为是在用户选择文件后立即开始上传。我希望防止这种情况发生,而是在用户选择文件后单击单独的“上传”按钮时触发上传。

我查看了代码,发现上传是从附加到文件输入的change事件开始的。我首先将return false;添加到onSubmit函数,然后将click事件附加到触发更改事件的另一个按钮:

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

这不起作用。它只是再次打开文件菜单。

如何在用户选择文件后立即阻止上传,而在用户点击其他按钮时触发上传?

2 个答案:

答案 0 :(得分: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()对象的名称。

希望有所帮助:)

答案 1 :(得分: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