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 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)