服务端:
[WebMethod(Description = "上传文件/图片")]
public string UploadFile(byte[] fsBuffer, string FileName)
{
using (MemoryStream m = new MemoryStream(fsBuffer))//定义并实例化一个内存流,来存放上传的文件/图片二进制流
{
using (FileStream f = new FileStream(System.Configuration.ConfigurationManager.AppSettings["FileSavePath"] + FileName, FileMode.Create))//把内存里的文件写入文件流
{
m.WriteTo(f);
}
}
}
客户端:
System.IO.Stream fs = new System.IO.FileStream(fileName, FileMode.Open);
FileService service = new FileService();
byte[] fsbuffer = new byte[fs.Length];
fs.Read(fsbuffer , 0, (int)fs.Length);//将输入流读入二进制数组中
service.UploadFile(fsbuffer , "test.jpg");
注:该方法不适应大文件的下载,因为这是一次性把文件读入内存的。