使用Valums Ajax文件上传器时,如何触发上传?
默认行为是在用户选择文件后立即开始上传。我希望防止这种情况发生,而是在用户选择文件后单击单独的“上传”按钮时触发上传。
我查看了代码,发现上传是从附加到文件输入的change
事件开始的。我首先将return false;
添加到onSubmit
函数,然后将click事件附加到触发更改事件的另一个按钮:
$('#startUpload').on('click', function() {
// some conditionals
$('input[name="file"]').trigger('change');
});
这不起作用。它只是再次打开文件菜单。
如何在用户选择文件后立即阻止上传,而在用户点击其他按钮时触发上传?
答案 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