从FTP站点下载文件 需要弹出下载对话框
我想从FTP站点下载文件,点击下载时弹出下载对话框,但发现下载的文件和站点中的文件不一样,文件变长了,文件内容在原文件内容后还加上了一些东西,从内容上看是当前页面的aspx文件。请教各位高手,怎样规避这种现象啊?以下是我的代码:protected void OnLink(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "OnLink")
{
int index = Convert.ToInt32(e.CommandArgument);
string serverUri = filesTable.Rows[index].ItemArray[0].ToString();
//使用FTP方式下载文件
int loc = serverUri.LastIndexOf("/");
if (loc <= 0)
{
return;
}
string downLoadFileName = serverUri.Substring(loc + 1);
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(downLoadFileName, System.Text.Encoding.UTF8));
if (serverUri != null)
{
byte[] _data;
_data = this.LoadFromURL(serverUri);
Response.BinaryWrite(_data);
Response.Flush();
}
}
}
protected byte[] LoadFromURL(string url)
{
WebRequest wr = WebRequest.Create(url);
byte[] result;
byte[] buffer = new byte[4096];
using (WebResponse response = wr.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (MemoryStream ms = new MemoryStream())
{
int count = 0;
do
{
count = responseStream.Read(buffer, 0, buffer.Length);
ms.Write(buffer, 0, count);
} while (count != 0);
result = ms.ToArray();
}
}
}
return result;
}
}
--------------------编程问答-------------------- 把aspx上的东西全部删除。
或者加上 Response.End() --------------------编程问答-------------------- 加上了Response.End()似乎不行哦,这样下载对话框只闪了一下就没有了,根本就没有下载。 --------------------编程问答-------------------- 自己顶一下,,都快沉下去了 --------------------编程问答-------------------- "attachment;filename=" + HttpUtility.UrlEncode(downLoadFileName, System.Text.Encoding.UTF8));
文件名 后面的HttpUtility.UrlEncode(downLoadFileName, System.Text.Encoding.UTF8)改个默认的
补充:.NET技术 , ASP.NET