Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解决Html5本地文件访问问题_Javascript_Html_Filereader_Fileapi - Fatal编程技术网

Javascript 解决Html5本地文件访问问题

Javascript 解决Html5本地文件访问问题,javascript,html,filereader,fileapi,Javascript,Html,Filereader,Fileapi,我们目前正在考虑将企业silverlight应用程序移植到html5。我们遇到的主要障碍是从用户的本地磁盘打开文件的能力。目前,他们有一个文档库,它只链接到他们计算机上的文件,他们可以从应用程序中打开这些文件并查看或打印出来。我所读到的是,您只能使用html5文件api访问web应用程序的本地沙箱。我们想从代码中加载这些文件 有人知道有什么解决办法吗 谢谢纯HTML5/Javascript没有解决办法。你需要使用插件,比如Java或Silverlight(也许你根本不应该移植它)。至于解决方法,

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

有人知道有什么解决办法吗


谢谢

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


注意:我听说浏览器最终会停止支持插件

如果没有用户选择,html5无法访问本地文件。但在IE工作,也许可以被视为一种变通方法。但是仍然需要满足一些要求。

可以使用chrome访问用户本地文件系统上的文件。因此,您必须愿意使其成为仅限chrome的应用程序

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

下面是一个直接从javascript访问java代码方法的教程:


你应该能够在silverlight中执行类似的操作。

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

那么,澄清一下,当前应用程序直接与本地计算机上的文件一起工作?如中所示,您没有尝试上载和处理远程服务器上的文件,也没有尝试通过API调用文件上的服务器?嗨,JasCav,是的,在本地计算机上处理文件。他们将在应用程序中有一个链接,例如c:\MyTxt.txt。当他们单击“打印”或“打开”(这是一个非常基本的示例,我们使用它做的更多)时,它会使用System.IO.FileStream打开文档。因此,我不知道这是否会让您走上正确的方向,但Spencer Cooley有一篇有趣的博文,强调了如何在浏览器中创建图像编辑器,而不必往返于服务器。这可能与您正在尝试的操作类似。你可能会发现一个单一风格的黑客,但最好使用更正式的东西,如node+webkit、cordova,甚至HTA。我记得很久以前就有这个问题,我还记得我在谷歌上搜索了它,找到了某种flash对象,它给了我磁盘的访问点。这不是一个直接的帮助,但是试着搜索一下。是的,这就是我们目前正在考虑迁移的原因,因为chrome正在放弃对npapi的支持。因此,它的插件选项不会飞起来。如果你的代码库已经在.net中,你可以简单地创建一个带有GUI前端的客户端应用程序,并且仍然向服务器发送查询。这让我们回到winforms/wpf时代,这给了我们部署噩梦。尽管silverlight得到了这么多废话,但它使LOB的部署变得容易多了。我同意,这是使用web应用程序的最大优势,无需部署。尽管如此,微软还是对ClickOnce做了一些改进,几乎在默认情况下启用了自动更新。但我们可以谈上几个小时。谢谢你的意见。