【问题标题】:Work around for Html5 Local File Access解决 Html5 本地文件访问
【发布时间】:2015-03-29 11:54:24
【问题描述】:

我们目前正在考虑将企业 Silverlight 应用程序移植到 html5。我们遇到的主要障碍是从用户本地磁盘打开文件的能力。目前,他们有一个文档库,仅链接到他们计算机上的文件,他们可以从应用程序中打开这些文件并查看或打印出来。我读到的只是您只能使用 html5 文件 api 访问 Web 应用程序的本地沙箱。我们想从代码中加载这些文件。

有没有人知道任何解决方法?

谢谢

【问题讨论】:

  • 所以,澄清一下,当前应用程序直接使用本地计算机上的文件?例如,您不是在尝试上传和处理远程服务器上的文件或通过 API 调用文件上的服务器吗?
  • 您好 JasCav,是的,可以使用本地计算机上的文件。他们将在应用程序中有一个链接,例如c:\MyTxt.txt 。当他们单击打印或打开时(这是一个非常基本的示例,我们用它做更多的事情)它使用 System.IO.FileStream 打开文档。
  • 所以,我不知道这是否能让你找到正确的方向,但 Spencer Cooley 有一篇有趣的博客文章强调了如何在浏览器中创建图像编辑器而无需往返服务器。它可能与您尝试做的类似。 scotch.io/tutorials/…
  • 你可能会发现一个单一风格的 hack,但最好使用更正式的东西,比如 node+webkit、cordova,甚至 HTA。
  • 我记得很久以前就遇到过这个问题,我还记得我在谷歌上搜索并找到了某种闪存对象,它为我提供了磁盘的访问点。不是直接的帮助,但可以尝试搜索一下。

标签: javascript html filereader fileapi


【解决方案1】:

是的,我同意 Markain 的观点。但是,如果您将受众仅限于 chrome 用户,我敢说,您很可能会使用您的一些用户。如果华之浩是对的,那么你的离开客户数量应该会减少,但经常使用firefox的用户不会高兴。总的来说,我认为这行不通。否则,会有太多网站破坏您的硬盘驱动程序(或者至少在您有权编辑/删除文件的任何地方)。我认为最好将您的产品设置为在检测到互联网连接并对文件进行更改时同步文件。这样一来,无论何时上传文件,用户都无需访问该网站。如果这是某种错误文件,那么如果您要在应用程序中创建一个链接,当单击该链接时,会将文件上传到网站,并且网站将执行任何必要的操作,这将是最有益的。如果这纯粹是在线的事情,那么我看不到您会通过其他人的文件查看什么业务=-)。希望我能帮上忙!

【讨论】:

    【解决方案2】:

    使用 java,您可以创建一个可以访问本地文件系统的“签名”小程序。 (如果小程序已签名,您可以请求文件系统权限)

    那么这里有一个直接从 javascript 访问你的 java 代码方法的教程:http://docs.oracle.com/javase/tutorial/deployment/applet/invokingAppletMethodsFromJavaScript.html

    您应该能够从 silverlight 执行类似的操作。

    【讨论】:

      【解决方案3】:

      可以使用 chrome 的 filesystem API 访问用户本地文件系统上的文件。所以你必须愿意让它成为一个仅限 chrome 的应用程序。

      【讨论】:

        【解决方案4】:

        没有用户选择,html5 无法访问本地文件。但是FSO: FileSystemObject 适用于 IE,MAYBE 可以被视为一种解决方法。但仍有一些要求需要满足。

        【讨论】:

          【解决方案5】:

          在纯 HTML5/Javascript 中没有解决方法。您需要使用插件,例如 Java 或 Silverlight(也许您毕竟不应该移植它)。至于解决方法,HTML5 为您提供了一种简单的方法,您可以拖放多个文件,您可以将这些文件传输到服务器上,然后再显示给您的用户。另一种解决方法是安装一个自定义代理(一个只有托盘图标的软件),它将有关当前用户“文档库”的信息发送到服务器,然后再次将其显示给用户。

          注意:我听说浏览器最终会停止支持插件。 http://www.howtogeek.com/179213/why-browser-plug-ins-are-going-away-and-whats-replacing-them/

          【讨论】:

          • 是的,这就是我们目前正在考虑迁移的原因,因为 chrome 正在放弃对 npapi 的支持。所以它的插件选项不会飞。
          • 如果您的代码库已经在 .net 中,您可以简单地创建一个带有 GUI 前端的客户端应用程序,并且仍然向服务器发送查询。
          • 这让我们回到了 winforms/wpf 时代,这给了我们部署的噩梦。尽管 silverlight 得到的所有废话,但它使 LOB 的部署变得更加容易。
          • 我同意,这是使用网络应用程序的最大优势,无需部署。尽管如此,微软还是对 ClickOnce 做了一些改进,几乎默认启用自动更新。
          • 我们在一些事情上走上了 clickonce 的道路,但它似乎从来没有像 SL 部署那样无缝。但可以谈论几个小时。感谢您的意见。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-01
          • 2017-01-09
          • 1970-01-01
          • 2021-04-11
          • 1970-01-01
          相关资源
          最近更新 更多