I am trying to figure out how to upload this file to my ftp server in C #. When it calls getResponse() on ftpwebrequest , it gives the error message "550 - access denied". I canβt understand why. I can connect to the server using Filezilla, just using the same credentials.
Here is my code that does the connection:
private void UploadFileToFTP(HttpPostedFile file, string server, string user, string pass) { string uploadUrl = server + file.FileName; string uploadFileName = Path.GetFileName(file.FileName); Stream streamObj = file.InputStream; Byte[] buffer = new Byte[file.ContentLength]; streamObj.Read(buffer, 0, buffer.Length); streamObj.Close(); streamObj = null; try { SetMethodRequiresCWD(); FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(uploadUrl); //ftp.Method = WebRequestMethods.Ftp.MakeDirectory; ftp.Method = WebRequestMethods.Ftp.UploadFile; ftp.UsePassive = true; ftp.Credentials = new NetworkCredential(user, pass); FtpWebResponse CreateForderResponse = (FtpWebResponse)ftp.GetResponse(); if (CreateForderResponse.StatusCode == FtpStatusCode.PathnameCreated) { string ftpUrl = string.Format("{0}/{1}", uploadUrl, uploadFileName); FtpWebRequest requestObj = FtpWebRequest.Create(ftpUrl) as FtpWebRequest; requestObj.KeepAlive = true; requestObj.UseBinary = true; requestObj.Method = WebRequestMethods.Ftp.UploadFile; requestObj.Credentials = new NetworkCredential(user, pass); Stream requestStream = requestObj.GetRequestStream(); requestStream.Write(buffer, 0, buffer.Length); requestStream.Flush(); requestStream.Close(); requestObj = null; } } catch (WebException e) { String status = ((FtpWebResponse)e.Response).StatusDescription; } }
source share