가장 쉬운 방법
.NET 프레임 워크를 사용하여 FTP 서버에 파일을 업로드하는 가장 간단한 방법은 WebClient.UploadFile
method를 사용 하는 것입니다 .
WebClient client = new WebClient();
client.Credentials = new NetworkCredential("username", "password");
client.UploadFile("ftp://ftp.example.com/remote/path/file.zip", @"C:\local\path\file.zip");
고급 옵션
더 큰 제어가 필요 WebClient
하지만 TLS / SSL 암호화 , ASCII 모드, 활성 모드 등과 같이 제공되지 않는 경우 FtpWebRequest
. 쉬운 방법은 다음을 FileStream
사용하여 FTP 스트림에 복사하는 것입니다 Stream.CopyTo
.
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip");
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.UploadFile;
using (Stream fileStream = File.OpenRead(@"C:\local\path\file.zip"))
using (Stream ftpStream = request.GetRequestStream())
{
fileStream.CopyTo(ftpStream);
}
진행 모니터링
업로드 진행 상황을 모니터링해야하는 경우 콘텐츠를 청크별로 직접 복사해야합니다.
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip");
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.UploadFile;
using (Stream fileStream = File.OpenRead(@"C:\local\path\file.zip"))
using (Stream ftpStream = request.GetRequestStream())
{
byte[] buffer = new byte[10240];
int read;
while ((read = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
ftpStream.Write(buffer, 0, read);
Console.WriteLine("Uploaded {0} bytes", fileStream.Position);
}
}
GUI 진행률 (WinForms ProgressBar
)은 C # 예제를 참조하십시오.
FtpWebRequest를 사용하여 업로드 진행률 표시 줄을 표시하는 방법
폴더 업로드
폴더에서 모든 파일을 업로드하려면 WebClient를 사용하여 FTP 서버에 파일 디렉토리 업로드를 참조하십시오.
.
재귀 업로드의 경우 C #에서 FTP 서버에 재귀 업로드를 참조
하세요.