//using System.Net; string ftpPath = "ftp://192.168.18.5/Upload/info/test.txt"; string user = "ftpuser"; string password = "password"; string sendFile = string.Format(@"C:\{0}.txt", DateTime.Today.ToString("yyyyMMdd hh:mm:ss"); FtpWebRequest fwr = (FtpWebRequest)WebRequest.Create(ftpPath); fwr.Method = WebRequestMethods.Ftp.UploadFile; fwr.Credentials = new NetworkCredential(user, password); byte[] data; using (StreamReader reader = new StreamReader(sendFile)) { data = Encoding.UTF8.GetBytes(reader.ReadToEnd()); } fwr.ContentLength = data.Length; using (Stream reqStream = fwr.GetRequestStream()) { reqStream.Write(data, 0, data.Length); }
간단한 응용
파일을 보내느 것이 아니라 특정 정보를 프로그램에서 생성(메모리 스트림, 텍스트 등)보낼 때
아래는 텍스트를 생성후 해당 텍스트를 로컬에 파일로 떨구듯이, ftp 올리는 예제이다
//using System.Net; string sendData = "test"; Uri ftpUri = new Uri(strDownloadPath); string ftpPath = string.Format(@"ftp://192.168.18.5/Upload/info/{0}.txt", DateTime.Now.ToString("yyyyMMdd-hhmmss")); string user = "ftpuser"; string pwd = "password"; //string inputFile = string.Format(@"C:\Work\Dixon\Secret\TestSecret\{0}.txt", DateTime.Today.ToString("yyyyMMdd hh:mm:ss")); FtpWebRequest req = (FtpWebRequest)WebRequest.Create(ftpPath); req.Method = WebRequestMethods.Ftp.UploadFile; req.Credentials = new NetworkCredential(user, pwd); byte[] buffer = Encoding.UTF8.GetBytes(sendData); req.ContentLength = buffer.Length; using (Stream reqStream = req.GetRequestStream()) { reqStream.Write(buffer, 0, buffer.Length); }
'C#' 카테고리의 다른 글
CLR에서 60초 동안 COM 컨텍스트 0x179930에서 COM 컨텍스트 0x179b58(으)로 전환하지 못했습니다. (2) | 2017.07.11 |
---|---|
현재 사용중인 port 조회하기 (2) | 2017.06.04 |
'Microsoft.Ace.OleDb.12.0' 공급자는 로컬 컴퓨터에 등록할 수 없습니다. (4) | 2017.05.05 |
멀티 모니터 사용시 원하는 모니터에 팝업창 오픈 (0) | 2016.08.17 |
현재 pc의 실행중인 모니터에 대한 정보를 가져오기 (0) | 2016.08.02 |
댓글