我正在为朋友构建一个Webapp,其中用户界面应允许用户按下按钮,并且应该以某种方式将他们插入的CD-ROM / DVD的所有内容上传到服务器.
我真的没有浏览器的标准“选择文件…”,因为CD内有许多不同的文件,位于许多不同的文件夹下.因此,我无法让用户单独选择所有文件-即使我实现了HTML5多选功能,他们仍将不得不浏览所有子文件夹(可能有多个级别).加上这需要在IE8上运行,因此多选将不起作用.
实现这一目标的最佳选择是什么?我正在寻找最透明的解决方案-下载Java小程序或外部插件会产生过多的开销. Flash可以达到这样的效果吗? Flash仍然是一个插件,但是可以接受,因为它已在许多地方使用,并且不需要像Java applet一样的“运行许可”.
谢谢
解决方法:
嗯…挺有趣的
无论如何,如果要依靠Java Applet解决方案…我不认为应该有一个单一的API来处理所有提到的问题
根据您的任务,这里是某种解决方案的组合…
I can’t really have the standard “Choose file…” of the browser,
because there are many different files inside the CD, under many
different folders.
>如果您有可启动的CD或其他东西…在这种情况下,我建议您
使用CD的* .iso映像文件生成.您可以使用JIIC lib
为了这
> …关于上传,我可以建议使用HttpClient
(在客户端)FileUpload(在servlet方面)将允许
上传〜2Gb重量文件…(HttpClient提示)在您的CD中(大的情况下)
文件读取)我建议您重写FileBody.writeTo(OutputStream)
设置reading file by chunks支持的方法
>或者如果您生成的文件确实很大,则可以另外使用RandomAccessFile来
通过索引读取/写入文件查看readFully() method
还有一件事…
…So I can’t have my users choose all the files individually – even
if I implement the HTML5 multi-selection, they would still have to
navigate through all the sub-folders (there may be several levels).
And plus this needs to work on IE8, so multi-selection won’t work.
>在Java Applet中,它将起作用:)如果您只需要某种
可以使用多种选择(它不是可引导CD或其他东西)
Swing的JFileChooser用于此任务.仔细看看方法
就像setMultiSelectionEnabled(boolean) …
> …关于
‘…they would still have to navigate through all the sub-folders
(there may be several levels)’
…您可以简单地(不上传文件夹),但可以预先打包这些级别,以便说一个zip文件,以将zip文件上传到服务器(如果我在这里错了,请改正我,因为级别的概念尚不清楚您现在的问题).
尽管如此,了解更多细节还是很有趣的,因为对于Web应用程序来说,上传整个CD的任务非常少…通常,这是一件很繁重的工作:S
报告该答案是否有帮助