-1
ファイルをftpサーバーにアップロードする際に問題があります。windows form c#ftp uploader
ウィンドウのフォームが開きますが、アップロードボタンをクリックしても何も起こりません。 アップロードするFTPログ情報とファイル用の構造を作成しました。 問題があるのはdo_work
関数だと思うが、見つけられないようだ。
struct FtpSetting
{
public string Server { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string FileName { get; set; }
public string Fullname { get; set; }
}
FtpSetting inputParameter;
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
string filename = ((FtpSetting)e.Argument).FileName;
string fullname = ((FtpSetting)e.Argument).Fullname;
string username = ((FtpSetting)e.Argument).Username;
string password = ((FtpSetting)e.Argument).Password;
string server = ((FtpSetting)e.Argument).Server;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(string.Format("{0}/{1}",server,filename)));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
Stream ftpStream = request.GetRequestStream();
FileStream fs = File.OpenRead(fullname);
byte[] buffer = new byte[1024];
double total = (double)fs.Length ;
int byteRead = 0;
double read = 0;
do
{
if (!backgroundWorker.CancellationPending)
{
byteRead = fs.Read(buffer, 0, 1024);
ftpStream.Write(buffer, 0, byteRead);
read += (double)byteRead;
double pourcentage = read/total * 100;
backgroundWorker.ReportProgress((int)pourcentage);
}
} while (byteRead != 0);
fs.Close();
ftpStream.Close();
}
のようなものを試してみてください。 – jdweng
エラーが生じますか?そこにあるログをチェックできるFTPサーバーにアクセスできますか? –
@ jdweng私はC#でコーディングを始めました。 – soichiro