【问题标题】:Open File Selection dojox/Uploader programmatically以编程方式打开文件选择 dojox/Uploader
【发布时间】:2014-07-07 12:10:19
【问题描述】:

我需要通过单击与小部件无关的div 来选择要使用 dojox/Uploader 上传的文件。

我尝试使用on.emit,但没有任何反应(还有click()onclick() 等...在domNodes 上......)

这是我的代码:

var myUploader = new dojox.form.Uploader({
            id : 'myUploader',
            url : baseUrl + '/upload/form',
            style : {
                'overflow': 'hidden',
                'position': 'relative',
                'opacity' : 0                   
            }
        },"uploaderHolder");

myUploader.startup();

var importButtonNode = dom.byId("importDivButton");

on(importButtonNode,"click",function(evt) {
    on.emit(myUploader.domNode, "click", {
         bubbles: true,
        cancelable: false
});

小部件必须隐藏,所以我不能按小部件选择按钮。我需要通过单击其他 div 打开选择文件对话框,所以...如何以编程方式打开文件浏览器来选择文件?

【问题讨论】:

  • 你的问题/问题是什么?
  • 如何以编程方式打开文件浏览器来选择文件?小部件按钮将被隐藏。
  • 请点击edit将您的问题添加到问题文章中并进行相应修改。这有助于找到问题的答案。
  • 完成,问题已添加
  • 感谢您的 cmets Gottieb Notschnabel!

标签: javascript file-upload dojo


【解决方案1】:

好吧,我找到了解决方案。我用一个小部件内部节点来调用点击,并将一个监听器附加到 Uploader 更改事件和完成事件...

首先,将点击事件附加到节点。

var importButtonNode = dom.byId("myImportDiv");
on(importButtonNode,"click",function(evt) {
    myUploader.domNode.childNodes[0].click();
});

附加到 Uploader 更改和完成事件的处理程序

myUploader.on("change",function(evt){
    if(evt[0].type != FileTypes.XSLX_FILE_TYPE){
        alert("Error file type must be XLSX");              
    } else {
        var formData = new Object();
        formData.idProject =  project.id;
        myUploader.upload(formData);    
    }
});
myUploader.on("complete",function(evt){
    alert("File Uploaded");
    // do things

});

在我的情况下,我需要发送没有表单的表单数据......所以使用 de upload 方法。该文件也必须是 XLSX。

我希望这会有所帮助。

问候

【讨论】:

    猜你喜欢
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    相关资源
    最近更新 更多