我们目前正在考虑将企业silverlight应用程序移植到html5。我们遇到的主要障碍是能够从用户的本地磁盘打开文件。目前,他们有一个文档库,它只链接到他们的计算机上的文件,他们可以从应用程序中打开并查看或打印出来。我读到的只是您只能使用html5文件api访问Web应用程序的本地沙箱。我们想从代码中加载这些文件。
有没有人知道对此有任何解决方法?
由于
答案 0 :(得分:2)
没有用户选择,html5无法访问本地文件。但是FSO: FileSystemObject适用于IE,MAYBE可以被认为是一种解决方法。但仍有一些要求可以满足。
答案 1 :(得分:1)
可以使用chrome filesystem API来访问用户本地文件系统上的文件。因此,您必须愿意将其设为仅限Chrome应用程序。
答案 2 :(得分:1)
使用java你可以创建一个" Signed"可以访问本地文件系统的applet。 (如果applet已签名,您可以请求filesystm权限)
然后有一个教程直接从javascript访问你的java代码的方法:http://docs.oracle.com/javase/tutorial/deployment/applet/invokingAppletMethodsFromJavaScript.html
你应该可以从silverlight执行类似的操作。
答案 3 :(得分:0)
纯HTML5 / Javascript中没有解决方法。您需要使用插件,例如Java或Silverlight(可能您根本不应该移植它)。至于变通方法,HTML5为您提供了一种简单的方法,可以拖放您可以在服务器上传输的多个文件,然后再显示给您的用户。另一种解决方法是安装自定义代理(只有托盘图标的软件),该代理将发送有关当前用户"文档库的信息。到服务器,然后再次,您可以将其显示回用户。
注意:我听说某个浏览器最终会停止支持插件。 http://www.howtogeek.com/179213/why-browser-plug-ins-are-going-away-and-whats-replacing-them/
答案 4 :(得分:0)
雅,我同意Markain的观点。但是,如果您将受众仅限于Chrome用户,我敢说,您很可能会使用某些用户。如果华智号是对的,那么你的离职客户数量应该减少,但经常使用firefox的用户不会满意。总的来说,我认为这不会奏效。否则,会有太多网站破坏您的硬盘驱动程序(或者至少在您拥有编辑/删除文件的权限的任何地方)。我认为,如果您的产品设置为在检测到互联网连接并对文件进行更改时同步文件,那将是最佳选择。这样,无论何时上传文件,用户都不需要访问网站。如果这是某种错误文件,那么如果你在应用程序中创建一个链接,点击它,将文件上传到网站,网站将做任何必要的事情,这将是最有益的。如果这是一个纯粹的在线事物,那么我看不出你会通过其他人的文件查找什么业务= - )。希望我帮忙!