bw = new BackgroundWorker(); bw.WorkerReportsProgress = true; bw.DoWork += new DoWorkEventHandler(bw_DoWork); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted); bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged); bw.RunWorkerAsync(temp); private void bw_DoWork(object sender, DoWorkEventArgs e) { ftp 下载 }
ftp上传图片,你做完了吗? 做完了,放在一个线程里运行,就好了。
比如用webclient WebClient wc = new WebClient(); byte[] data = new byte[10]; wc.UploadDataCompleted += new UploadDataCompletedEventHandler(wc_UploadDataCompleted); wc.UploadDataAsync(new Uri("http://www.sina.com.cn"), data);
Thread t = new Thread(workThreadFunc);
t.Start();
bw = new BackgroundWorker();
bw.WorkerReportsProgress = true;
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
bw.RunWorkerAsync(temp);
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
ftp 下载
}
做完了,放在一个线程里运行,就好了。
WebClient wc = new WebClient();
byte[] data = new byte[10];
wc.UploadDataCompleted += new UploadDataCompletedEventHandler(wc_UploadDataCompleted);
wc.UploadDataAsync(new Uri("http://www.sina.com.cn"), data);
/// <summary>
/// 上传文件到FTP服务器上【注意:当文件存在时,覆盖原来的文件】
/// </summary>
/// <param name="fileName">本地文件路径(例如:d:\ftp_upload1.txt)</param>
/// <param name="uploadUrl">FTP服务器路径(例如:ftp://192.168.10.176/ftp_upload.txt )</param>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
/// <param name="strResult">执行结果</param>
/// <returns>0:成功; 1:失败</returns>
public int UploadFun(string fileName, string uploadUrl, string userName, string password, ref string strResult)
{
Stream requestStream = null;
FileStream fileStream = null;
FtpWebResponse uploadResponse = null;
try
{
FtpWebRequest uploadRequest = (FtpWebRequest)WebRequest.Create(uploadUrl);
uploadRequest.Method = WebRequestMethods.Ftp.UploadFile; uploadRequest.Proxy = null;
uploadRequest.KeepAlive = true;
uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;
uploadRequest.UsePassive = true;
NetworkCredential nc = new NetworkCredential();
nc.UserName = userName;
nc.Password = password; uploadRequest.Credentials = nc; //修改getCredential();错误2
requestStream = uploadRequest.GetRequestStream();
fileStream = File.Open(fileName, FileMode.Open); byte[] buffer = new byte[1024];
int bytesRead;
while (true)
{
bytesRead = fileStream.Read(buffer, 0, buffer.Length);
if (bytesRead == 0)
break;
requestStream.Write(buffer, 0, bytesRead);
}
requestStream.Close(); uploadResponse = (FtpWebResponse)uploadRequest.GetResponse();
if (uploadResponse.StatusCode == FtpStatusCode.ClosingData)
{
strResult = "上传成功,文件:" + fileName;
return 0;
}
else
{
strResult = "上传文件失败,code=" + uploadResponse.StatusCode.ToString();
} }
catch (UriFormatException ex)
{
strResult = ex.Message;
}
catch (IOException ex)
{
strResult = ex.Message;
}
catch (WebException ex)
{
strResult = ex.Message;
}
finally
{
if (uploadResponse != null)
uploadResponse.Close();
if (fileStream != null)
fileStream.Close();
if (requestStream != null)
requestStream.Close();
} return 1;
}