目前項目中要求一次性上傳多個文件到服務器,用Ftp怎麼做啊
有沒有只創建一條接,再把多個文件通過這個邊接上傳.
我現在是每上傳一個文件就創建一條連接,上傳完再關閉.但總感覺慢.因為在連接要花時間.求教!!!!小弟謝了

解决方案 »

  1.   

    能不能說下怎麼做啊,我也是用循環做的 Stream requestStream = null;
             FileStream fileStream = null;
             FtpWebResponse upLoadResponse = null;
             int percent = 0;
             try
             {
                string uriAllPath = uriUpLoad + fileAlias;
    //這里每次都創建了一條連接,有什麼方法改變沒
                FtpWebRequest upLoadRequest = (FtpWebRequest)WebRequest.Create(uriAllPath);
                upLoadRequest.Method = WebRequestMethods.Ftp.UploadFile;
                upLoadRequest.Proxy = null;
                requestStream = upLoadRequest.GetRequestStream();            fileStream = File.OpenRead(filePath);
                byte[] byteArr = new byte[1024];
                int byteLen;
                while (true)
                {
                   if (worker.CancellationPending)
                   {
                      e.Cancel = true;
                      break;
                   }
                   byteLen = fileStream.Read(byteArr, 0, byteArr.Length);
                   if (byteLen == 0)
                      break;
                   requestStream.Write(byteArr, 0, byteLen);
                   numToComplete = numToComplete + byteLen;
                   percent = (int)((float)numToComplete / (float)(total*1024) * 100);
                   if (percent <= 100)
                      worker.ReportProgress(percent);
                }
                requestStream.Close();
                upLoadResponse = (FtpWebResponse)upLoadRequest.GetResponse();
                upLoadResponse.Close();
             }
             catch (Exception ex)
             {
                throw new Exception(ex.Message);
             }
             finally
             {
                if (upLoadResponse != null)
                   upLoadResponse.Close();
                if (requestStream != null)
                   requestStream.Close();
                if (fileStream != null)
                   fileStream.Close();
             }
    這個是我做的.循環調用這個方法
      

  2.   

    我說有沒有只用一個ftpWebrequest來做,現在每次都創建一條,這樣就花費時間在創建連接上了