Sharepoint soap请求MTOM

时间:2013-12-03 15:28:54

标签: sharepoint mtom

因此我们要求使用iOS客户端将文件上传到sharepoint服务器。我们能够将文件大小上传到40kb,但问题是我们传递的文件数据是Base64编码,文件大小超过40kb失败,因为我们无法在soap消息中传递大数据,所以我们尝试了不同的方法,在网上提到。 These are the ways we tried out

我们只剩下使用MTOM发送数据了。

经过大量实验和搜索后,我认为MTOM是一种使用soap上传数据的方法。我们正在使用 CopyIntoItems sharepoint服务进行上传。

肥皂请求看起来像

   <"xmlns:soap12=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
                                     "<soap12:Body>\n"
                                     "<CopyIntoItems xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\">\n"
                                     "<SourceUrl>%@</SourceUrl>\n"
                                     "<DestinationUrls>\n"
                                     "<string>%@</string>\n"
                                     "</DestinationUrls>\n"
                                     "<Fields>\n"
                                     "%@"
                                     "</Fields>\n"
                                     "<Stream>MY_FILE_DATA</Stream>\n"
                                     "</CopyIntoItems>\n"
                                     "</soap12:Body>\n"
                                     "</soap12:Envelope>\n"

现在的问题是我们如何以MTOM接受的方式格式化这个soap请求,因为CopyIntoItems可能无法以其他格式工作。

我调查了很少的MTOM样本

http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/cwbs_soapmtom.html

http://cxf.apache.org/docs/mtom.html

任何帮助都会非常感激。谢谢...... !!

1 个答案:

答案 0 :(得分:0)

使用HTTP post和开发Http处理程序来存储发布的数据怎么样?

在Sharepoint(MSDN)中设置http处理程序非常容易,在Process request方法中,您可以使用查询字符串来获取所需的信息。 假设你创建了一个Upload.ashx处理程序。

public void ProcessRequest(HttpContext context)
{
  var targetList = context.Request["targetList"];
  var targetFileName = context.Request["targetFn"];
  // Get the stream to content
  var stream = context.Request.GetBufferedInputStream();
  // Save the file somewhere
}

从客户端进行HTTP发布到http://server/_layouts / 15 / Upload.ashx?targetList = myFiles&amp; ...