일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- MDB Select
- 공공 데이터 포털
- GDI+
- solid
- Json.NET
- NUnit
- TDD
- sqlite3
- Excel Cell Format
- eventhandler
- delegate
- C# 파일 암/복호화
- C# MDB
- Cell Border Style
- 객체지향
- JSON
- 버스 API
- MDB Connect
- eventargs
- MVC
- 경기도 버스정보시스템
- C# MDB Handle
- 시
- c#
- WPF
- 경기도 버스
- DrawEllipse
- 디자인 패턴
- DrawRectangle
- Winform
- Today
- Total
White Whale Studio
[C#/WPF] FTP - Upload Files(파일 업로드) 본문
이번 포스팅에서는 FTP 파일 업로드를 살펴볼겁니다.
Using System.Net; 추가해 주시고..
/// <param name="filename">Upload할 파일명</param>
/// <param name="targetFilename">Upload후 FTP서버에 저장될 파일명</param>
public int UpLoadFiles(string filename, string targetFilename)
{
try
{
totalread = 0;
FileInfo fi = new FileInfo(filename); // 파일정보를 입력합니다.
string URI = _server + "/" + targetFilename;
System.Net.FtpWebRequest ftp = GetRequest(URI);
ftp.Method = System.Net.WebRequestMethods.Ftp.UploadFile; // 업로드로 설정
ftp.UseBinary = true;
ftp.ContentLength = fi.Length;
const int BufferSize = 4096;
byte[] content = new byte[BufferSize - 1 + 1];
int dataRead;
using (FileStream fs = fi.OpenRead())
{
try
{
using (Stream rs = ftp.GetRequestStream())
{
do
{
dataRead = fs.Read(content, 0, BufferSize);
totalread += dataRead;
rs.Write(content, 0, dataRead);
if (OnProgressCallBack != null)
{
OnProgressCallBack(Convert.ToInt32((totalread / fi.Length) * 100)); // 진행상황 확인
}
} while (!(dataRead < BufferSize));
rs.Close();
}
}
catch (System.InvalidOperationException ie)
{
//Console.WriteLine(ie.Message);
OnProgressCallBack(-1);
}
finally
{
fs.Close();
}
}
ftp = null;
}
catch (Exception ee)
{
Console.WriteLine(ee.Message);
Console.WriteLine("[FTP Upload] {0} - Upload Failed" + filename);
}
}
private FtpWebRequest GetRequest(string URI)
{
FtpWebRequest result = (FtpWebRequest)FtpWebRequest.Create(URI);
result.Credentials = new NetworkCredential(_id, _pw);
result.KeepAlive = false;
return result;
}
저도 웃긴게... 실사용한다고 작성했던 코드를 다시 한번 보니 어떤 소스는 GetRequest 함수로 호출하고 어떤 소스는
DownloadFiles 할 때 FtpWebRequest가 포함되에 있고 그렇네요..
방식은 동일하므로 취향에 맞게 사용하시면 될것같습니다.
'IT Engineering > .Net (WPF)' 카테고리의 다른 글
[C#/WPF] FTP - 서버 상의 파일 사이즈 검색 GetFileSize (0) | 2015.04.27 |
---|---|
[C#/WPF] 프로그램 시작 경로, 폴더 내 파일 정보 가져오기 (0) | 2015.04.16 |
[C#/WPF] FTP - DownLoad Files / 파일 다운로드 (0) | 2015.04.02 |
Distinct 구현 (0) | 2015.04.02 |
[WPF] ScrollView Mouse Click & Move 마우스 클릭으로 Child 움직이기 (0) | 2015.01.21 |