Uploading folder to ftp

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • readbanana
    New Member
    • Jul 2010
    • 37

    #1

    Uploading folder to ftp

    I am trying to upload images to the ftp. I need to have it in a compressed folder called by a specific name and then upload that folder to a specific directory. Each time I try, I get an error The remote server returned an error: (550) File unavailable
    This code works fine when I am trying to upload one image at a time. Here I am trying to upload a whole folder. I checked the uri (I copied it from the debugging) and it went there just fine. Is there a different way that I have to do the upload folders?

    It doesn't really sound like it can be a permissions problem, because I am able to upload a file via filezilla. I am also able to use a command prompt and cd into the proper folder. Anyone know what the problem is? I am pretty desperate?

    Code:
      string ftpPassword = ConfigurationManager.AppSettings["ftpPassword"].ToString();
          string uri = remoteDirectory;
          FileInfo fileInf = new FileInfo(FileToUpload);
          // Create FtpWebRequest object from the Uri provided
          FtpWebRequest reqFTP = null;
          reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
          reqFTP.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
          reqFTP.KeepAlive = false;
          reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
          // Specify the data transfer type.
          reqFTP.UseBinary = true;
          // Notify the server about the size of the uploaded file
          reqFTP.ContentLength = fileInf.Length;
          // The buffer size is set to 2kb
          int buffLength = 2048;
          byte[] buff = new byte[buffLength];
          int contentLen;
          // open file to be uploaded
          using (FileStream fs = fileInf.OpenRead())
          {
          try
          {
          // Stream to which the file to be upload is written
          using (Stream strm = reqFTP.GetRequestStream())
          {
          // Read from the file stream 2kb at a time till Stream content ends
          contentLen = fs.Read(buff, 0, buffLength);
          while (contentLen != 0)
          {
          // Write Content from the file stream to the FTP Upload Stream
          strm.Write(buff, 0, contentLen);
          contentLen = fs.Read(buff, 0, buffLength);
          }
          }
          reqFTP = null;
          ////Update the database with the new image location and delete the img from the uploadedimages folder
          //DataAccess.UpdateImageDB(item.ProductID, item.ImgFolder + "/" + item.IMG);
          System.IO.File.Delete(fileInf.ToString());
          }
          {
          Console.WriteLine(ex.Message, "Upload Error");
          }
Working...