آموزش:
خوب ابتدا یک شیء از نوع WebClient می سازیم:
WebClient webClient = new WebClient();
و همچنین شی ای از نوع OpenFileDialog جهت گرفتن آدرس فایل در PC:
OpenFileDialog fd = new OpenFileDialog();
حال اگه روی دکمه Upload (در اینجا Button1) وارد تابع زیر میشه:
private void button1_Click(object sender, EventArgs e)
{
webClient.UploadFileCompleted += new UploadFileCompletedEventHandler(Completed);
webClient.UploadProgressChanged += new UploadProgressChangedEventHandler(ProgressChanged) ;
try
{
if (fd.ShowDialog() == DialogResult.OK)
{
System.IO.FileInfo f = new System.IO.FileInfo(fd.FileName);
fileSize = f.Length / (1024 * 1024);
// ftp://u222501965:123456789@sadeghjun...older/Save.pdf
UploadBTN.Enabled = false;
webClient.UploadFileTaskAsync(new Uri("ftp://" + UsernameTB.Text + ":" + PassTB.Text + "@" + AddressTB.Text + fd.SafeFileName), fd.FileName);
}
}
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}
تو خط اول میگیم هروقت آپلود تموم شد وارد تابع Completed شو و دستورات آن را اجرا کن و در خط دوم میگه هر موقع تغییری در پروسه آپلود رخ داد ، وارد روتین ProgressChanged شو.
سپس دکمه Upload رو غیر فعال کرده تا آپلود تمام شود. زمانی که فایل دیالوگ OK میشود می توانیم فرایند آپلود رو آغاز کنیم. با استفاده از شیء webClient که ساخته بودیم فایل رو به صورت زیر آپلود می کنیم:
webClient.UploadFileTaskAsync(new Uri("ftp://" + UsernameTB.Text + ":" + PassTB.Text + "@" + AddressTB.Text + fd.SafeFileName), fd.FileName);
دقت کنید که من سروری که فایلم رو درونش آپلود میکنم ftp هست بنابراین در ابتدای آدرس Url من "ftp://" رو قرار دادم. ولی در صورتی که سرور شما Http بود در ابتدا باید "http://" قرار دهید.
و با استفاده از اطلاعات Username و password و آدرس سرور ، فایل شورع با آپلود می کند.
هر وقت دانلود تمام شد در تابع Completed لیبل وضعیت رو تغییر میده و هرموقع که پروسه دانلود تغییر میکند progressBar رو تغییر میدهد.
تمام
اگه سوالی بود در خدمتم