2

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

  • 一个 webdav 服务器。我使用了 webdav .net 服务器:http ://www.webdavsystem.com/server
  • 浏览器:chrome 28.0.1500.95 m、firefox 23、IE 9
  • NPAPI 浏览器的办公授权插件。我有 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 的软件,我创建了一个带有 webdav 服务器的简单 C# 项目,该服务器显示文件系统中的文件。您可以在此处下载项目:https ://dl.dropboxusercontent.com/u/35370420/TestPlugin.zip 。通过 webdav 界面可用的文件存储在 App_Data\WebDav\Storage 下。

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

这是我的笔记:

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

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

  • Chrome(当我说它无法打开时,我的意思是浏览器显示消息:当前文件无法打开进行编辑)
    • 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 界面中显示的其他文件,您可以尝试看看它们是否有效。

更新:

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

4

1 回答 1

2

好的,感谢 Stuart 在这个问题上的解释,事情开始变得更有意义了。基本上我认为问题在于微软插件在处理从 JavaScript 传递的字符串时的实现方式。斯图尔特发布了一个显示问题的问题。插件代码期望字符串以空值终止,而事实上这并不能保证。

我在我的真实应用程序中做了一个测试,我在 url 中添加了空字符,即我通过了url + '\0',现在该血腥的东西在 Chrome 中工作了。

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

于 2013-08-13T23:21:00.010 回答