我正在检索 .docx 文件作为字节数组。然后,我尝试使用所述字节数组作为数据参数调用 Doc 的 read() 函数,但出现无法识别的文件扩展名错误。
我使用以下(c#)代码检索字节数组:
WebClient testWc = new WebClient();
testWc.Credentials = CredentialCache.DefaultCredentials;
byte[] data = testWc.DownloadData("http://localhost/Lists/incidents/Attachments/1/Testdocnospaces.docx");
如果此时我将字节数组输出为 .docx 文件,我的程序将正确地允许我打开或保存文件。出于这个原因,我相信字节数组已被正确检索。这是输出 .docx 文件的示例:
Response.ClearHeaders();
Response.Clear();
Response.AppendHeader("Content-Disposition", "attachment;Filename=test.docx");
Response.BinaryWrite(data);
Response.Flush();
Response.End();
但是,如果我尝试将字节数组读入 Doc 中,如下所示:
Doc doc = new Doc();
XReadOptions xr = new XReadOptions();
xr.ReadModule = ReadModuleType.MSOffice;
doc.Read(data, xr);
我的程序将在上述代码的最后一行出错,抛出以下内容:“FileExtension '' is invalid for ReadModuleType.MSOffice.”</p>
Doc.Read() 函数似乎正在寻找一个空字符串,它通常会在其中找到文件类型。另外,我确实在这台机器上安装了 Office 2007。