c# webservice上传下载

来源:互联网 发布:js函数not defined 编辑:程序博客网 时间:2024/06/07 15:46

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();
       }

0 0