对于某些文件,通过 NPAPI 浏览器的 Office 授权插件在 Chrome 中打开 webdav 文件失败

2024-05-09

好吧,这是一个棘手的问题,因为它涉及很多变量:

  • 一个 webdav 服务器。我使用了 webdav .net 服务器:http://www.webdavsystem.com/server http://www.webdavsystem.com/server
  • 浏览器:chrome 28.0.1500.95 m、firefox 23、IE 9
  • NPAPI 浏览器的 Office 授权插件。我有 MS Office 2010 SP2 14.0.7015.1000(32 位)。插件 dll 的版本为: C:\ Program Files(x86)\ Microsoft Office \ Office14 \ NPAUTHZ.DLL - 14.0.4730.1010,C:\ Program Files(x86)\ Microsoft Office \ Office14 \ NPSPWRAP.DLL:14.0.4761.1000

使用 IT Hit 的软件,我创建了一个简单的 C# 项目,其中包含一个显示文件系统中的文件的 webdav 服务器。您可以在这里下载该项目:https://dl.dropboxusercontent.com/u/35370420/TestPlugin.zip https://dl.dropboxusercontent.com/u/35370420/TestPlugin.zip。通过 webdav 界面提供的文件存储在 App_Data\WebDav\Storage 下。

当我尝试使用 JavaScript ajax 浏览器编辑文档时(http://www.webdavsystem.com/ajaxfilebrowser http://www.webdavsystem.com/ajaxfilebrowser),某些文件的编辑文档菜单失败。您需要在VS2010中打开TestPlugin项目,运行它,然后单击“使用Ajax文件浏览器浏览”。我知道他们的 JavaScript 客户端使用 Chrome 和 FireFox 中的 ms office 插件。

这是我的笔记:

  • 最初,我在真实的应用程序中遇到了这个问题,我认为该插件的字符数限制为 111 个字符,即当我尝试打开 url 超过 111 个字符的文件时,插件会失败。在使用真实应用程序进行测试期间,我还看到了一些奇怪的东西,我尝试打开一个文件,但不起作用,打开第二个文件,我知道它可以工作,但警告对话框会显示一个虚构的名称第二个文件的名称,它附加了前一个文件名的后缀。
  • 我决定从头开始,创建了基于 webdav.net 软件的 C# 项目。我在 webdav 存储中添加了不同长度的文件,以下是我使用“浏览 Ajax 文件”浏览器时注意到的情况(右键单击每个文件并选择“编辑文档”):

  • FF 23 工作正常,IE 9 工作正常,没问题

  • Chrome (when I said it fails to open I meant the browser shows the message: Current file cannot be opened for editing)
    • 01234567890123456789012345678901234567890123456789012345678901234567890123456789012.docx无法打开
    • 012345678901234567890123456789012345678901234567890123456789012345678901234567890123.docx 打开正常
    • 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234.docx无法打开
    • 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345.docx无法打开
    • 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456.docx无法打开
    • 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567.docx无法打开
    • 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678.docx打开正常
    • 即使出现警告对话框,test.xlsx 也无法打开,但库报告它无法编辑文件

第一个 url 的长度为 110 个字符:

http://localhost:9658/01234567890123456789012345678901234567890123456789012345678901234567890123456789012.docx

所以,我的问题是:为什么 Chrome 中的行为如此不一致?最后我不太确定这些模式是什么。是不是ms插件有问题?我想是的,但我不是 100% 确定。

该项目包含 webdav 界面中显示的其他文件,您可以尝试看看它们是否有效。

Update:

有趣的是,FF 22 的行为与 Chrome 相同,然后我升级到版本 23,现在工作正常,可以打开所有文件。


好的,感谢斯图尔特的解释这个问题 https://code.google.com/p/chromium/issues/detail?id=269183,事情开始变得更有意义了。基本上,我认为问题在于 Microsoft 插件在处理从 JavaScript 传递的字符串时的实现方式。斯图尔特发布一个问题 https://stackoverflow.com/questions/10940692/javascript-and-scriptable-npapi-plugin-string-data-on-google-chrome这说明了问题所在。插件代码期望字符串以 null 结尾,但实际上不能保证这一点。

我在真实的应用程序中进行了测试,并将空字符添加到 url,即我通过了url + '\0',现在这该死的东西可以在 Chrome 中运行了。

问题仍然是,微软会修复他们的插件吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于某些文件,通过 NPAPI 浏览器的 Office 授权插件在 Chrome 中打开 webdav 文件失败 的相关文章

随机推荐