ftp技术多线程上传图片

ljjhw320 2011-07-23 07:28:40
我现在想做一个winfrom ,想利用ftp技术进行多线程的上传图片,而且还有进度条显示!请哪个大侠能指点一下,给个例子,谢谢!
...全文
295 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhguojiang 2012-10-30
  • 打赏
  • 举报
回复
不错不错不错不错
绿色夹克衫 2011-07-25
  • 打赏
  • 举报
回复
比如用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);


[Quote=引用 4 楼 ljjhw320 的回复:]

该怎么弄了,我没有多接触过异步的东西!引用 2 楼 litaoye 的回复:
没必要搞这么复杂,用1个线程作异步就可以。
[/Quote]
mjp1234airen4385 2011-07-25
  • 打赏
  • 举报
回复
ftp上传图片,你做完了吗?
做完了,放在一个线程里运行,就好了。
dazhabai 2011-07-25
  • 打赏
  • 举报
回复

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 下载
}
dazhabai 2011-07-25
  • 打赏
  • 举报
回复
backgroundwork
confidenceyu 2011-07-25
  • 打赏
  • 举报
回复
ljjhw320 2011-07-25
  • 打赏
  • 举报
回复
能说的具体一点吗??谢谢了![Quote=引用楼主 ljjhw320 的回复:]
我现在想做一个winfrom ,想利用ftp技术进行多线程的上传图片,而且还有进度条显示!请哪个大侠能指点一下,给个例子,谢谢!
[/Quote]
ljjhw320 2011-07-25
  • 打赏
  • 举报
回复
该怎么弄了,我没有多接触过异步的东西![Quote=引用 2 楼 litaoye 的回复:]
没必要搞这么复杂,用1个线程作异步就可以。
[/Quote]
ljjhw320 2011-07-25
  • 打赏
  • 举报
回复
上传图片的方法我已经贴上去了,但是怎么可以放得线程里??我有点不明白啊![Quote=引用 8 楼 dazhabai 的回复:]
C# code

bw = new BackgroundWorker();
bw.WorkerReportsProgress = true;
bw.DoWork += new DoWorkEventHandler(b……
[/Quote]
ljjhw320 2011-07-25
  • 打赏
  • 举报
回复
这是我上传图片的方法,大家看看怎么弄可以??
/// <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;
}
Snoworld 2011-07-24
  • 打赏
  • 举报
回复
http://blog.csdn.net/hank212/article/details/6562918
绿色夹克衫 2011-07-23
  • 打赏
  • 举报
回复
没必要搞这么复杂,用1个线程作异步就可以。
Icedmilk 2011-07-23
  • 打赏
  • 举报
回复
只要开一个上传的线程就行了,只要不卡住UI就可以了

类似这样的代码
Thread t = new Thread(workThreadFunc);
t.Start();

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧