当前位置: 动力学知识库 > 问答 > 编程问答 >

Download file from ftp and how Prompt user to save/open file in ASP.NET C#

问题描述:

Download file from ftp and how Prompt user to save/open file in ASP.NET C#

 string strDownloadURL = System.Configuration.ConfigurationSettings.AppSettings["DownloadURL"];

string HostName = System.Configuration.ConfigurationSettings.AppSettings["HostName"];

string strUser = System.Configuration.ConfigurationSettings.AppSettings["BasicAuthenticationUser"];

string strPWD = System.Configuration.ConfigurationSettings.AppSettings["BasicAuthenticationPWD"];

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();

string fileName = @"c:\temp\" + strFile + "";

Directory.CreateDirectory(Path.GetDirectoryName(fileName));

FileStream file = File.Create(fileName);

byte[] buffer = new byte[2 * 1024];

int read;

while ((read = responseStream.Read(buffer, 0, buffer.Length)) > 0) { file.Write(buffer, 0, read); }

file.Close();

responseStream.Close();

response.Close();

网友答案:

So, assuming you're writing the FTP request's response stream down to the ASP.NET response stream, and want to trigger the download dialog in the browser, you'll want to set the Content-Disposition header in the response.

    // note: since you are writing directly to client, I removed the `file` stream in your original code since we don't need to store the file locally... or so I am assuming
    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();
分享给朋友:
您可能感兴趣的文章:
随机阅读: