C# ftp下载输出到前台页面

private void DownFileFromFTP(string url,string filename,string username, string password)
{
FtpWebRequest req = (FtpWebRequest)WebRequest.Create("ftp:" + url);
req.Method = WebRequestMethods.Ftp.DownloadFile;
req.UseBinary = true;
req.UsePassive = true;
req.Credentials = new NetworkCredential(username, password);
try
{
using (FtpWebResponse res = (FtpWebResponse)req.GetResponse())
{
Stream stream = res.GetResponseStream();

int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[bufferSize];
// FileStream outputStream = new FileStream(@"D:" + filename, FileMode.Create);
var memoryStream = new MemoryStream();
readCount = stream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
memoryStream.Write(buffer, 0, readCount);
readCount = stream.Read(buffer, 0, bufferSize);
}
DownLoad(memoryStream, filename);

stream.Close();
memoryStream.Close();
res.Close();
}
}
catch (Exception ex)
{
Response.Write("<script>alert('文件不存在!');</script>");
}
finally
{

}
}
 
页面输出下载文件。
      public void DownLoad(System.IO.MemoryStream memoryStram, string fileName)
        {
            //设置输出编码格式
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            //设置输出流
            Response.ContentType = "application/octet-stream";
            //防止中文乱码
            fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);

            //设置输出文件名
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
            //输出
            Response.BinaryWrite(memoryStram.GetBuffer());
        }

 

 

 

原文地址:https://www.cnblogs.com/samlu/p/8391746.html