public string IPAdress = "xx.xx.xx.xx";
public string ftpUser = "xxx";
public string ftpPassWord = "xxxxxxxx";
public string LocalAdress = "D://";
public string FileName = "xx.txt";
private void Upload()
{
Uri uri = new Uri("ftp://" + IPAdress + "/" + FileName);
//定义FtpWebRequest,并设置相关属性
FtpWebRequest uploadRequest = (FtpWebRequest)WebRequest.Create(uri);
uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;
uploadRequest.Credentials = new NetworkCredential(ftpUser, ftpPassWord);
//开始以异步方式打开请求的内容流以便写入
uploadRequest.BeginGetRequestStream(new AsyncCallback(EndGetStreamCallback), uploadRequest);
}
private void EndGetStreamCallback(IAsyncResult ar)
{
//用户定义对象,其中包含该操作的相关信息,在这里得到FtpWebRequest
FtpWebRequest uploadRequest = (FtpWebRequest)ar.AsyncState;
//结束由BeginGetRequestStream启动的挂起的异步操作
//必须调用EndGetRequestStream方法来完成异步操作
//通常EndGetRequestStream由callback所引用的方法调用
Stream requestStream = uploadRequest.EndGetRequestStream(ar);
FileStream fileStream = File.Open(@""+LocalAdress + FileName, FileMode.Open);
byte[] buffer = new byte[2048];
int bytesRead;
float size;
while (true)
{
bytesRead = fileStream.Read(buffer, 0, buffer.Length);
startbye += bytesRead;
if (bytesRead == 0)
break;
Debug.Log(startbye);
size = fileStream.Length;
//本地的文件流数据写到请求流
requestStream.Write(buffer, 0, bytesRead);
}
requestStream.Close();
fileStream.Close();
//开始以异步方式向FTP服务器发送请求并从FTP服务器接收响应
uploadRequest.BeginGetResponse(new AsyncCallback(EndGetResponseCallback), uploadRequest);
}
private void EndGetResponseCallback(IAsyncResult ar)
{
FtpWebRequest uploadRequest = (FtpWebRequest)ar.AsyncState;
//结束由BeginGetResponse启动的挂起的异步操作
FtpWebResponse uploadResponse = (FtpWebResponse)uploadRequest.EndGetResponse(ar);
Debug.Log(uploadResponse.StatusDescription);
Debug.Log("Upload complete");
}
求教大神!!!!!如何把这段异步上传修改成异步下载!!!
C# 异步下载问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2017-06-06 16:13关注
用不着改写这段代码,直接用 WebClient.DownloadFileAsync ,写一个回调委托函数,和你上面的做法类似
http://blog.csdn.net/youaregoo/article/details/8979149解决 无用评论 打赏 举报
悬赏问题
- ¥15 visual studio2022中文乱码无法解决
- ¥15 关于华为5g模块mh5000-31接线问题
- ¥15 keil L6007U报错
- ¥15 webapi 发布到iis后无法访问
- ¥15 初学者如何快速上手学习stm32?
- ¥15 如何自动更换布娃娃图片上的衣服
- ¥15 心理学eprime编程
- ¥15 arduino esp8266开发
- ¥15 stm32单片机通过485发送命令给驱动器控制电机转动,同样的代码f103可以控制电机转动,换到f407不能动了,但是用串口助手调试407显示发送的命令都是正确的,卡了好久了这是发送规则
- ¥15 stm32f103c8t6最小系统板+2.8寸TFTLCD板子