【发布时间】:2012-06-20 09:36:20
【问题描述】:
string HostName = System.Configuration.ConfigurationSettings.AppSettings["HostName"];
string strUser = System.Configuration.ConfigurationSettings.AppSettings["BasicAuthenticationUser"];
string strPWD = System.Configuration.ConfigurationSettings.AppSettings["BasicAuthenticationPWD"];
strFile = "9788191073072.zip";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(HostName + strFile);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(strUser, strPWD);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
Response.AddHeader("content-disposition", "attachment;filename=" + strFile);
byte[] buffer = new byte[2 * 1024];
int read;
while ((read = responseStream.Read(buffer, 0, buffer.Length)) > 0) { Response.OutputStream.Write(buffer, 0, read); }
responseStream.Close();
response.Close();
【问题讨论】:
-
您需要具体说明什么不起作用?如果有的话会抛出什么异常?您似乎还缺少第四行 strFile 的变量类型。
-
我的代码在本地系统上运行良好。但是在发布网站后的服务器上,我的代码无法正常工作。没有例外没有错误文件没有下载
-
在从服务器请求时,您是否尝试过使用 Fiddler 跟踪详细信息?也许原始响应流中有线索。服务器事件日志也可能有一些线索。
-
感谢 Maverik 现在我的代码可以工作了 :)
-
不客气!如果您可以在答案中发布(并将您的答案标记为“答案”),您究竟出了什么问题以及您如何解决它,以便其他人将来可以受益,也许它会对其他人有所帮助。