在创建SocialPost时上载SharePoint SocialAttachment的文件?

时间:2014-05-06 19:02:04

标签: rest sharepoint upload attachment social

我有兴趣编写代码以在SharePoint 2013上创建新的SocialPost并包含图像附件。创建帖子和引用附件的代码是直截了当的(并且记录良好here),但关于上传文件本身的部分似乎没有记录。

开箱即用的新闻源似乎最初将文件添加到名为“用户照片”的列表中,该列表直接位于“我的网站”根目录下。 (如果你去(我的站点服务器)/ _ layouts / 15 / viewlsts.aspx,你会看到那里的列表。)这些照片放在“Feed Attachments”文件夹中。 (我假设这需要提升权限,顺便说一下?)然而,在此之后,它们似乎被复制到个人“我的网站”下的某个位置 - 例如,(我的网站服务器)/个人//列表/已发布的Feed /附件。奇怪的是,您甚至无法在“网站内容”列表中看到此列表。

我很乐意编写代码将文件上传到其中一个列表,但目前还不清楚“正确”的方法是什么。此外,这些列表的结构非常复杂,据我所知,这些字段没有记录。

当然,我可以选择将文件上传到别处 - 比如我选择的图片库。不过,这似乎是一种蹩脚的解决方法。此外,默认列表似乎有与其附加的帖子相关的元数据,如果邮件被删除,我假设它用于清理?好像我希望它能起作用。

是否有人知道上传图片文件的“正确”方式及其正确位置?

-

更新:我最近注意到文档中有/_api/SP.Social.SocialFeedManager/CreateImageAttachment REST端点的一行引用,但没有参考示例。我已经尝试过将数据发送到此处但没有成功,但我无法让它工作。它一直告诉我,我没有提供“名称”参数......但我包括它。我很确定请求是否正确形成。

找到这个后,我也试着查看同一个东西的客户端对象模型实现 - 在SP.Social.SocialFeedManager对象上有一个createImageAttachment()函数 - 我离得更近了,但它告诉我那里是我的imageData中的无效字符。我已经尝试将其作为原始数据发送(我从JS FileReader获取)并尝试使用Base64编码。当我编码它时,我没有得到关于无效字符的错误,但它也说我没有传递和imageData。

1 个答案:

答案 0 :(得分:0)

您获得的错误是因为您在阅读之后不要将您的流定位到开头。在将文件读入流中之后,在调用CreateImageAssignment方法之前,您必须定位到流的开头:

stream.Seek(0. SeekOrigin.Begin)