【ftp上传时间延迟问题,困扰两天了。】

wszhoho 2008-02-22 03:57:14
192.168.1.112上,开了ftp和iis服务,有一段代码,能实现上传,但是有时间延迟的问题(由于这个,进度条搞不定了),传一个200M的文件,客户端代码执行了约40秒以后,ftp目录才会出现文件,而不是像flashfxp等工具那样,一上传就会生成文件, 我猜测可能有两个原因:一,文件是先http方式存到了iis服务器的内存里,再传到ftp目录,从而导致延迟;二,客户端将文件进行了二进制编码导致的延迟。 但具体是什么,实在是搞不清楚,忘有经验的同志们,给点提示。
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://192.168.1.112:22/FtpTest/FtpReceive/" + Path.GetFileName(File1.PostedFile.FileName));
request.Credentials = new NetworkCredential("用户名", "密码");
request.KeepAlive = true;
request.Method = WebRequestMethods.Ftp.UploadFile;
request.UseBinary = true;

Stream inputStream = File1.PostedFile.InputStream;
long len = inputStream.Length;
request.ContentLength = len;

Stream requestStream = request.GetRequestStream();
try
{
int count = 0;
byte[] buffer = new byte[2048];
while ((count = inputStream.Read(buffer, 0, buffer.Length)) > 0)
{
requestStream.Write(buffer, 0, count);
}
}
catch
{

}
finally
{
inputStream.Close();
inputStream.Dispose();
requestStream.Close();
requestStream.Dispose();
}
...全文
516 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldb5736030 2008-02-27
  • 打赏
  • 举报
回复
呵呵 我就是用ActiveX实现的
winner2050 2008-02-25
  • 打赏
  • 举报
回复
估计是从临时目录复制到目标目录的。

中间耗费点点时间
xuan.ye 2008-02-25
  • 打赏
  • 举报
回复
学习了
Animatrix 2008-02-22
  • 打赏
  • 举报
回复
其实我觉得B/S很难实现进度条,即使实现了也只有用ACTIVEX,或者做个假的进度条,根本就不是真的能显示进度
至于为什么传了约40秒以后,ftp目录才会出现文件,老衲也搞不清楚原理
帮顶

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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