title: FTP over SSL issue
body: <p>I'm having issue uploading file to ftp site over SSL to specific directory. I'm using <code>System.Net.FtpWebRequest</code> <code>class</code> for this purpose. Upload going through fine. But the file always dropped to home directory. Any idea what might be doing wrong? Appreciate your help.</p>
  
  <pre><code>    public bool UploadFile(string srcFilePath, string destFilePath = null)
      {
          if (String.IsNullOrWhiteSpace(srcFilePath))
              throw new ArgumentNullException("Source FilePath.");
  
          if (String.IsNullOrWhiteSpace(destFilePath))
              destFilePath = Path.GetFileName(srcFilePath);
  
          Uri serverUri = GetUri(destFilePath);
  
          //// the serverUri should start with the ftp:// scheme.
          if (serverUri.Scheme != Uri.UriSchemeFtp)
              return false;
  
          // get the object used to communicate with the server.
          FtpWebRequest request = CreateFtpRequest(serverUri, WebRequestMethods.Ftp.UploadFile);
  
          // read file into byte array
          StreamReader sourceStream = new StreamReader(srcFilePath);
          byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
          sourceStream.Close();
          request.ContentLength = fileContents.Length;
  
          // send bytes to server
          Stream requestStream = request.GetRequestStream();
          requestStream.Write(fileContents, 0, fileContents.Length);
          requestStream.Close();
  
          FtpWebResponse response = (FtpWebResponse)request.GetResponse();
          Debug.WriteLine("Response status: {0} - {1}", response.StatusCode, response.StatusDescription);
  
          return true;
      }
  
      private FtpWebRequest CreateFtpRequest(Uri serverUri, string method)
      {
          FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
          request.EnableSsl = true;
          request.UsePassive = true;
          request.UseBinary = true;
          request.KeepAlive = true;
          request.Credentials = new NetworkCredential(_userName, _password);
          request.Method = method;
          return request;
      }
  
      private Uri GetUri(string remoteFilePath)
      {
          return new Uri(_baseUri, remoteFilePath);
      }
  </code></pre>