关于stream的问题。web services 传递附件。请高手指点!
wse中有这样的例子,
[WebMethod]
public void CreateDimedImage()
{
SoapContext respContext = HttpSoapContext.ResponseContext;
DimeAttachment dimeAttach = new DimeAttachment(
"image/gif", TypeFormatEnum.MediaType,
@"C:\images\test.gif");
respContext.Attachments.Add(dimeAttach);
}
-----------------------
调用
Private void btnGetImage_Click(object sender, System.EventArgs e)
{
MyDimeService svc = new MyDimeService();
svc.CreateDimedImage();
if (svc.ResponseSoapContext.Attachments.Count == 1)
{
MessageBox.Show("Got it!\n");
pbDime.Image = new Bitmap(
svc.ResponseSoapContext.Attachments[0].Stream);
}
}
--------------------------------
我想问的是,如果是其他类型的文件,比如文本文件,word文件等,如何写一个通用的函数呢?
调用函数直接将 数据 保存为 文件。
--------------------------------
或者,svc.ResponseSoapContext.Attachments[0].Stream 类型就是stream,
我想请问,直接将stream类型的数据写成一个文件,如何操作???
我这样写了下。有问题,我对流弄不明白。唉
StreamWriter objWriter=new StreamWriter(@"d:\good.txt",true,Encoding.GetEncoding("gb2312"));
const int size = 4096;
byte[] bytes = new byte[4096];
int numBytes;
Stream str =svc.ResponseSoapContext.Attachments[0].Stream;
while((numBytes = str.Read(bytes, 0, size)) > 0) <---需要byte类型
objWriter.Write(bytes,0,numBytes); <---需要char类型
objWriter.Close();