当前位置:编程学习 > C#/ASP.NET >>

从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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,