FineUI 官方论坛

标题: Grid里linkbutton下载文件出错 [打印本页]

作者: 南山牧童    时间: 2013-2-25 02:14
标题: Grid里linkbutton下载文件出错
本帖最后由 南山牧童 于 2013-2-25 02:16 编辑

下载的代码在另一个页面用过,差不多,改了文件路径而已,但是在另一个页面好用,在这个页面不好用,是bug还是代码写的不对?????
[attach]1764[/attach]
                  图1
图1为文件列表,点击"下载"调用下面的代码进行下载

[attach]1765[/attach]
                     图2
点击下载后出现图2的错误
protected void gridFileMsList_RowCommand(object sender, GridCommandEventArgs e)
        {
            if (e.CommandName == "Download")
            {               
                string FFileUrl = fm.ReadFiles(rmHtml.RemoveHtml(gridFileMsList.Rows[e.RowIndex].Values[0].ToString())).Rows[0]["FPath"].ToString();
                //打开要下载的文件
                FileStream r = new FileStream(FFileUrl, FileMode.Open);
                //设置基本信息
                Response.Buffer = false;
                Response.AddHeader("Connection", "Keep-Alive");
                Response.ContentType = "application/octet-stream";
                Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(Path.GetFileName(FFileUrl)));
                Response.AddHeader("Content-Length", r.Length.ToString());

                while (true)
                {
                    //开辟缓冲区空间
                    byte[] buffer = new byte[1024];
                    //读取文件的数据
                    int leng = r.Read(buffer, 0, 1024);
                    if (leng == 0)//到文件尾,结束
                        break;
                    if (leng == 1024)//读出的文件数据长度等于缓冲区长度,直接将缓冲区数据写入
                        Response.BinaryWrite(buffer);
                    else
                    {
                        //读出文件数据比缓冲区小,重新定义缓冲区大小,只用于读取文件的最后一个数据块
                        byte[] b = new byte[leng];
                        for (int i = 0; i < leng; i++)
                            b = buffer;
                        Response.BinaryWrite(b);
                    }
                }
                r.Close();//关闭下载文件
                Response.End();//结束文件下载
            }
            else if (e.CommandName == "Delete")
            {               
            }
        }






欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4