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

时间:2013-01-17 12:54:34

标签: javascript html5 applet cd cd-rom

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

我无法真正拥有浏览器的标准“选择文件...”,因为CD内有许多不同的文件,在许多不同的文件夹下。所以我无法让我的用户单独选择所有文件 - 即使我实现HTML5多选,他们仍然需要浏览所有子文件夹(可能有几个级别)。而且这需要在IE8上运行,因此多选不起作用。

实现这一目标的最佳选择是什么?我正在寻找最透明的解决方案 - 下载Java applet或外部插件会带来太大的开销。闪存可以达到这样的效果吗? Flash仍然是一个插件,但它是可以接受的,因为它在许多地方使用,并且不像Java小程序那样需要“运行权限”。

由于

3 个答案:

答案 0 :(得分:3)

嗯......非常有趣

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

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

  

我真的没有浏览器的标准“选择文件...”,
  因为CD里面有很多不同的文件,很多下   不同的文件夹。

  • 如果您有可引导的CD或其他东西......在这种情况下,我可以提供建议 使用* .iso图像文件生成你的CD。您可以使用JIIC lib 为此

  • ...关于上传,我可以建议使用HttpClient
    (在客户端)+ FileUpload(在servlet端)将允许 上传〜2Gb权重文件... (HttpClient提示)在你的CD中(大案例) 文件阅读)我建议覆盖FileBody.writeTo(OutputStream) 设置reading file by chunks支持的方法

  • 或者如果您生成的文件非常庞大,您还可以使用RandomAccessFile 按索引读取/写入文件readFully() method

还有一件事......

  

...所以我不能让我的用户单独选择所有文件 - 甚至   如果我实现HTML5多选,他们仍然必须   浏览所有子文件夹(可能有几个级别)。   而且这需要在IE8上运行,因此多选不起作用。

  • 在Java Applet中,工作:)如果你只是需要某种 你可以使用多种选择(它不是可引导的CD或其他东西) Swing的JFileChooser执行此任务。仔细看看方法 像setMultiSelectionEnabled(boolean) ...

    • ......关于
  

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

...你可以简单地(不是上传文件夹)但预先打包这些级别让我们说一个zip文件将zip文件上传到服务器(如果我错了,请纠正我,因为<现在你的问题中描述的“强>级别”并不是很明确。


尽管如此,知道更多细节会很有趣,因为网络应用程序上传整张CD是非常罕见的任务......通常情况下,它是一个非常重要的东西:S


报告该答案是否有用

答案 1 :(得分:1)

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

你必须将“webkitdirectory”和“mozdirectory”添加到<input>,并且维护目录结构可能很难,但不是不可理解的。你必须使用onUpload回调,然后获得对文件引用对象的访问权限,应该有一个'relativePath',你可以使用它添加到上传者的帖子数据供服务器使用。

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

希望这有帮助。

答案 2 :(得分:0)

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

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