是否可以扩展一下?请给个思路
- 纯浏览器环境下是做不到的
- 可以开发一个本地服务程序,浏览器与本地服务程序通过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')
优秀如你,可以了!