SOAP の代わりに REST スタイルの URL を使用して、WCF 3.5 でストリームを返そうとしています。アイデアは、SharePoint 2010 からファイルを読み取り、それをクライアントに戻すことです。(SharePoint サービスを使用する代わりにこのようにする理由がありますが、余談です。) ファイルを送信する唯一の方法は、 を使用してファイル システムに書き込みFileStream
、 を使用File.OpenRead
してストリームをクライアント。a を使用してMemoryStream
もうまくいかないようです。IE はファイルの保存を要求しますが、ファイルは 2KB ほどになり、すべてがそこにあるわけではないため、もちろん読み取ることができません。何か案は?
SPListItemCollection lookupFld2 = docLibrary.GetItems(spQuery2);
if (lookupFld2.Count > 0)
{
WebOperationContext.Current.OutgoingResponse.ContentType =
"application/octet-stream";
WebOperationContext.Current.OutgoingResponse.Headers.Add(
"Content-Disposition","attachment; filename=" + lookupFld2[0].File.Name);
MemoryStream memoryStream =
(MemoryStream)lookupFld2[0].File.OpenBinaryStream();
memoryStream.Position = 0;
return memoryStream;
}