Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Windows store apps 通过新的REST API将文档发布到OneNote_Windows Store Apps_Onenote - Fatal编程技术网

Windows store apps 通过新的REST API将文档发布到OneNote

Windows store apps 通过新的REST API将文档发布到OneNote,windows-store-apps,onenote,Windows Store Apps,Onenote,由于某些原因,我通过新的REST API上载到OneNote的任何文档在从OneNote查看时都已损坏。其他一切正常,但文件(例如Word文档)不可单击,如果您尝试打开,则显示为已损坏 这与字节数组或其内存中出现问题时可能发生的情况类似,但情况似乎并非如此。我使用基本相同的过程将文件字节上载到SharePoint、OneDrive等。只有OneNote的文件似乎已损坏 这里是C语言的简化版本# 是否有人有过通过OneNote API通过Windows应用商店应用程序上载实际二进制文档的想法或工作

由于某些原因,我通过新的REST API上载到OneNote的任何文档在从OneNote查看时都已损坏。其他一切正常,但文件(例如Word文档)不可单击,如果您尝试打开,则显示为已损坏

这与字节数组或其内存中出现问题时可能发生的情况类似,但情况似乎并非如此。我使用基本相同的过程将文件字节上载到SharePoint、OneDrive等。只有OneNote的文件似乎已损坏

这里是C语言的简化版本#

是否有人有过通过OneNote API通过Windows应用商店应用程序上载实际二进制文档的想法或工作代码?

包含一个如何上载附件的工作示例(方法:CreatePageWithAttachedFile)。 我能想到的上述代码段和代码示例之间的细微差别是,代码示例上载pdf文件(而不是文档),并且示例使用StreamContent(而上述代码段使用ByteArrayContent)。 我下载了代码示例,并在本地对其进行了修改,以使用文档文件和ByteArrayContent。我能够上传附件并成功查看它。使用以下命令从给定流获取字节数组:

   using (BinaryReader br = new BinaryReader(stream))
   {
       byte[] b = br.ReadBytes(Convert.ToInt32(s.Length)); 
   }
其余的代码看起来与上面的代码片段非常相似,总体上对我来说是成功的

<> P>在解决问题的时候还有一些事情要考虑:

  • 首先验证附件文件本身没有损坏。例如,是否可以在混合使用OneNote API的情况下打开它
  • 验证API返回了201 Http状态代码,并且生成的页面包含附件图标,并允许下载/查看附件
因此,问题是(奇怪的)在HTML内容中发送的标记中添加了元内容类型,但没有显示。文档中提到在object标记中添加type=[mime type],由于WinStore示例没有这样做(它只将mime类型添加到MediaTypeHeaderValue中),所以我删除了它,它工作得非常好

只需将其更改为此即可:

<object data-attachment=\"" + fileName + "\" data=\"name:" + attachmentPartName + "\" />


感谢您用示例代码为我指明了正确的方向!

很高兴您能使用它。但是type属性是可选的,我们已经对它进行了测试。它可以使用type属性,也可以不使用type属性。
<object data-attachment=\"" + fileName + "\" data=\"name:" + attachmentPartName + "\" />