因此我们要求使用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://cxf.apache.org/docs/mtom.html
任何帮助都会非常感激。谢谢...... !!
答案 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; ...