FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 1810|回复: 0
打印 上一主题 下一主题

Grid里linkbutton下载文件出错

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-25 02:14:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 南山牧童 于 2013-2-25 02:16 编辑

下载的代码在另一个页面用过,差不多,改了文件路径而已,但是在另一个页面好用,在这个页面不好用,是bug还是代码写的不对?????

                  图1
图1为文件列表,点击"下载"调用下面的代码进行下载


                     图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")
            {               
            }
        }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-29 06:41 , Processed in 0.043808 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表