WebService代码:
///
///上传文件
///
///文件的byte[]
///上传文件的路径
///上传文件名字
///
[WebMethod]
public boolUploadFile(byte[] fs, string path, string fileName)
{
bool flag = false;
try
{
//获取上传案例图片路径
path = Server.MapPath(path);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
//定义并实例化一个内存流,以存放提交上来的字节数组。
MemoryStream m = new MemoryStream(fs);
//定义实际文件对象,保存上载的文件。
FileStream f = new FileStream(path + "\" + fileName,FileMode.Create);
//把内内存里的数据写入物理文件
m.WriteTo(f);
m.Close();
f.Close();
f = null;
m = null;
flag = true;
}
catch (Exception ex)
{
flag = false;
}
return flag;
}
[WebMethod(Description = "下载服务器站点文件,传递文件相对路径")]
publicbyte[] DownloadFile(string strFilePath, string path)
{
FileStream fs = null;
string CurrentUploadFolderPath =HttpContext.Current.Server.MapPath(path);
string CurrentUploadFilePath = CurrentUploadFolderPath + "\" +strFilePath;
if (File.Exists(CurrentUploadFilePath))
{
try
{
///打开现有文件以进行读取。
fs = File.OpenRead(CurrentUploadFilePath);
int b1;
System.IO.MemoryStream tempStream = newSystem.IO.MemoryStream();
while ((b1 = fs.ReadByte()) != -1)
{
tempStream.WriteByte(((byte)b1));
}
return tempStream.ToArray();
}
catch (Exception ex)
{
return new byte[0];
}
finally
{
fs.Close();
}
}
else
{
return new byte[0];
}
客户端代码:
///
/// 上传图片附件
///
///
private bool UploadImage()
{
bool flag = true;
string path = @"C:\Documents and Settings\Administrator\MyDocuments\My Pictures\10121312156cf4a761c504fe69.jpg";//本地路径
byte[] bytes = GetBytesByPath(path);//获取文件byte[]
string uploadPath = "image";//上传服务器文件夹路径
string fileName = "img18.jpg";//文件名称
try
{
localhost.Service s = newWindowsFormsApplication1.localhost.Service();
if (s.UploadFile(bytes, uploadPath, fileName)) { flag = true;}
else { flag = false; }
}
catch
{
flag = false;
}
return flag;
}
///
/// 根据文件的路径获取图片的byte[]
///
///
///
public static byte[] GetBytesByPath(string path)
{
FileStream fs = new FileStream(path, FileMode.Open,FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] bytes = br.ReadBytes((int)fs.Length);
fs.Flush();
fs.Close();
return bytes;
}
private void DownFile()
{
localhost.Service s = newWindowsFormsApplication1.localhost.Service();
byte[] bs = s.DownloadFile("img18.jpg","image");
FileStream stream=new FileStream(@"C:\Documents andSettings\Administrator\My Documents\My Pictures\18.jpg",FileMode.CreateNew);
stream.Write(bs,0,bs.Length);
stream.Flush();
stream.Close();
}