使用浏览器从CD-ROM或DVD读取数据



我正在为一个朋友构建一个web应用程序,其中用户界面应该允许用户按下一个按钮,并且它应该以某种方式将他们插入的CD-ROM/DVD的所有内容上传到服务器。

我真的不能有标准的浏览器的"选择文件…",因为CD里面有很多不同的文件,在很多不同的文件夹下。所以我不能让我的用户单独选择所有的文件——即使我实现了HTML5的多选择,他们仍然需要浏览所有的子文件夹(可能有几个级别)。再加上这需要在IE8上工作,所以多重选择将不起作用。

我最好的选择是什么?我正在寻找最透明的解决方案-下载Java applet或外部插件将是太多的开销。flash能做到这一点吗?Flash仍然是一个插件,但它是可以接受的,因为它在很多地方使用,并且不需要像Java applet那样需要"运行权限"。

谢谢

Emm…相当有趣的

无论如何,如果依靠Java Applet解决方案…我不认为应该有一个单一的API来处理所有提到的点

根据你的任务,这里有一些解决方案的组合…

我真的不能有标准的"选择文件…"浏览器,
因为CD里有很多不同的文件,在很多
下面不同的文件夹。

  • 如果你有可引导的cd之类的…在这种情况下,我可以建议使用*。你可以使用JIIC库对于这个

  • …关于上传,我可以建议使用HttpClient
    (在客户端)+ FileUpload(在servlet端)将允许上传~2Gb的重文件…(HttpClient提示)在你的CD(大的情况下我建议重写FileBody.writeTo(OutputStream)

  • 或者如果你生成的文件真的很大,你可以额外使用RandomAccessFile来通过索引读取/写入文件查看readFully()方法

还有一件事…

…所以我不能让我的用户单独选择所有的文件——甚至如果我执行HTML5的多选项,他们仍然需要这么做浏览所有子文件夹(可能有几个级别)。再加上这需要在IE8上工作,所以多重选择将不起作用。

  • 在Java Applet中,它工作:)如果你只是需要一些多种选择(它不是一个可启动的CD或什么的),你可以使用Swing的JFileChooser用于此任务。仔细看看方法像setMultiSelectionEnabled(布尔)…

    • …关于

"……他们仍然需要浏览所有子文件夹(可能有几个级别)'

…你可以简单地(不是上传文件夹),但预先打包这些关卡,让我们说一个zip文件,将zip文件上传到服务器(如果我错了请纠正我,因为关卡的概念在你的问题中没有很清楚地描述)


尽管如此,知道更多的细节会很有趣,因为对于web应用程序来说,上传整个cd是相当罕见的任务…通常,它是一个相当重的东西:S


回答是否有帮助

我已经使用fine uploader有一段时间了,它对完整的文件夹工作得很好。是完整的html/javascript。

你必须添加"webkitdirectory "one_answers"mozdirectory"到<input>,而且维护目录结构可能很困难,但不是不可克服的。你必须使用onUpload回调,然后获得访问filerreference对象的权限,该对象应该有一个'relativePath',你可以使用它添加到上传者的post数据中供服务器使用。

用户将只能使用firefox或chrome,并选择他们的目录(或拖动它!)

Chrome你可以依赖HTML5文件系统API。您还可以读取目录和子目录的内容。但我不确定是否有任何解决方案为IE做同样的事情。

这个链接可能对你有帮助http://www.html5rocks.com/en/tutorials/file/filesystem/http://www.w3.org/TR/file-system-api/

最新更新