【问题标题】:How to programmatically upload file in node-webkit / nw.js如何以编程方式在 node-webkit / nw.js 中上传文件
【发布时间】:2016-10-27 05:29:23
【问题描述】:

我正在使用 node-webkit/nw.js 作为自动化工具来测试我的 Web 应用程序。 我的应用程序有一个记录模式来捕获所有的点击事件和键盘事件。 所有捕获的事件都记录到一个文件中,并且在播放模式下,记录的事件从干净状态运行。

但是,由于文件上传会打开文件对话框,因此我无法模拟文件选择。由于使用的是 node webkit,我可以以编程方式从用户系统读取文件并使用 FormDataBlob 将其作为 blob 上传。但是,根据文件上传,必须触发一些事件,上传完成后,其他字段必须填充图片。

有没有办法以编程方式在表单数据中附加文件? 我可以理解这在普通浏览器中是不可能的,因为这将是一个安全问题。在节点 webkit 环境中,无论如何都能够在后台访问和上传用户文件。那么,是否可以修改输入文件值或通过其他方式在Form 中添加一个blob 并上传文件?

【问题讨论】:

    标签: javascript node-webkit nw.js


    【解决方案1】:

    nw.js 的 github 页面似乎详细说明了所涉及的步骤,但文档中没有。

    获取表单节点和输入节点引用的步骤。

    //Detect if button clicked is inside a form. 
    //In my case all attachments use same component. So I know the no. of levels to move up
    if(activeElm.parentNode.parentNode.parentNode.tagName=="FORM"){
        //Navigate to input elm and save it as new activeElm. 
        //Navigation will differ based on your page.
        activeElm = activeElm.parentNode.parentNode.parentNode.getElementsByTagName('input')[0];
    }
    

    模拟文件附件的步骤。

    var f = new File('/path/to/file', 'name');
     var files = new FileList();
     files.append(f);
     elm.files = files;
    

    【讨论】:

      猜你喜欢
      • 2015-05-10
      • 2015-07-24
      • 2017-07-05
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多