2

我需要一个从 SharePoint 服务器上存在的 XSN 模板创建 InfoPath 实例表单的解决方案,我正在使用这种方法,但这会在我们可能没有写入权限的服务器临时目录中提取模板文件。有没有更好的解决方案?

4

1 回答 1

5

您只需将 CAB 库更改为可以将模板文件提取到内存的库,就像这个一样,

从内存中的 .CAB 档案或 InfoPath XSN 文件中提取的最少 C# 代码

然后打电话,myCab.ExtractFile("template.xml", out buffer, out bufferLen);

完整的代码看起来像

private byte[] GetXmlForm(SPDocumentLibrary list) {
  byte[] data = null;
  SPFile file = list.ParentWeb.GetFile(list.DocumentTemplateUrl);


  Stream fs = file.OpenBinaryStream();
  try {
    data = new byte[fs.Length];
    fs.Read(data, 0, data.Length);
  } finally {
    fs.Close();
  }

  byte[] buffer;
  int bufferLen;  
  CabExtract cab = new CabExtract(data);
  cab.ExtractFile("template.xml", out buffer, out bufferLen);

  return buffer;
}
于 2012-02-22T16:37:00.820 回答