请问multiUpload能否支持上传一个指定的目录下的文件

是否可以扩展一下?请给个思路

  • 纯浏览器环境下是做不到的
  • 可以开发一个本地服务程序,浏览器与本地服务程序通过websocket或http通讯来获取指定目录的文件

JavaScript是可以选择一个本地目录,遍历下面所有文件的呀

可能是没有明白你的问题,你问题的关键点在哪?

关键点是,现在的multiUpload的控件可以选择多个文件,一起上传。我想实现选择一个目录,然后把目录下的文件一起上传。因为JS是可以选择一个目录且遍历所有文件的。所以我觉得是可以通过扩展这个控件来实现的,但是不知道怎么下手

现在控件可以选择多个文件(是选文件),我想把前端JS改成选目录(是选目录)

明白了,这个应该可以,稍等…

这样试试:
在界面的 afterShow 事件处理器中添加如下代码

        UI appui = AppUI.getCurrent().getUI();
        appui.accessSynchronously(()->{
            appui.getPage().getJavaScript().execute("some JavaScript code to add 'webkitdirectory' and  'directory‘ attribute to "input" html node ");
        });

现在有个问题,vaading产生的控件的html是没有id的,有什么办法能设置id吗?

现在通过这样写,可以选择目录了,但是在后台的QueueUploadComplete方法里发现只上传了一个文件(目录中的第一个),为啥呢?

        UI appui = AppUI.getCurrent().getUI();
        appui.accessSynchronously(()->{
            appui.getPage().getJavaScript().execute("$('input:file').removeAttr('multiple').attr('directory',true).attr('webkitdirectory',true)");
        });

去掉这句试试
.removeAttr('multiple')

优秀如你,可以了!