2013-01-17 36 views
2

我正在为朋友构建一个Web应用程序,用户界面应该允许用户按下按钮,并且它应该以某种方式上载CD-ROM/DVD的所有内容他们已经插入到服务器。使用浏览器从CD-ROM或DVD读取数据

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

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

谢谢

+1

Java applet或某个ActiveX控件应该可以帮到你。 – IrfanClemson

+0

是否有已知的Java applet(库)可以完成这种任务,而不是重新发明轮子? –

+1

递归文件上传将需要文件系统遍历,这是由浏览器环境(包括Flash)(仅限明确选定的文件可用)所限制的。 Java,ActiveX或者从HTTP转移到更适合这种类型的任务的FTP之类的东西都是有道理的。我建议你至少有一个可行的解决方案,你只需要告诉人们发送一份关于如何创建一个的档案。这是透明和可维护的,而其他解决方案更可能导致问题,这可能会使一些用户受到的影响远远不止这些小的不便。 –

回答

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小程序它工作:)如果你只是需要某种 多选择(它不是一个可引导的CD或某事),你可以使用 Swing的JFileChooser这项任务。看看接近,在方法 像setMultiSelectionEnabled(boolean) ...

    • ...关于

” ......他们仍然必须通过所有子文件夹浏览 (可能有几个级别)'

...你可以简单地(不上传文件夹),但预先打包这些级别s可以说一个zip文件上传zip文件到服务器(纠正我,如果我错了,因为水平的想法是不是很清楚你的问题描述)


不过,这将是有趣的了解更多的细节,因为相当罕见的任务,因为网络应用程序的整个光盘...上传作为一项规则,这是一个很沉重的东西:S


如果回答有帮助,请举报

0

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

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

+0

这也许对你有所帮助http://ericbidelman.tumblr.com/post/21649963613/idb-filesystem-js-bringing-the-html5-filesystem-api – Sanjeeva

+0

没错,所以也许有这样的闪光? –

+0

检查了这个http://stackoverflow.com/questions/4596526/is-it-possible-to-upload-a-complete-directory-structure-with-flex – Sanjeeva

1

我用fine uploader了一段时间,它的工作原理很罚款完整文件夹。它是完整的html/javascript。

你将不得不“webkitdirectory和‘mozdirectory’添加到<input>,并且还保持目录结构可能很难,但不是insurmontable,你必须使用onUpload回调,然后访问FileReference对象,它应该有一个“relativePath”,您可以使用添加到上传者的职位数据服务器使用。

的用户必须只使用Firefox或Chrome,并选择自己的目录(或拖动它!)。

希望对您有所帮助

相关问题