博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件下载问题
阅读量:4256 次
发布时间:2019-05-26

本文共 1474 字,大约阅读时间需要 4 分钟。

直接使用超链接的方式进行文件下载,会出现如同txt,以及一些图片格式的文件不能直接下载,而是在浏览器中直接打开,那么如果想将所有格式的文件进行下载的话,如下所示:

前台代码:

  <asp:Repeater ID="rptFile" runat="server" OnItemCommand="rptFile_ItemCommand">

                                <HeaderTemplate>
                                    <table cellpadding="0" cellspacing="0">
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <tr>
                                        <td height="25">
                                            <%#Eval("AttaNames")%>
                                            <asp:LinkButton ID="LinkButton1" runat="server" CommandName="download" CommandArgument='<%# Eval("AttaNames") %>'
                                                class="delete">下载</asp:LinkButton>
                                            <%-- <a href='../UploadFile/<%#Eval("AttaNames")%>'>下载</a>--%>
                                        </td>
                                    </tr>
                                </ItemTemplate>
                                <FooterTemplate>
                                    </table>
                                </FooterTemplate>
                            </asp:Repeater>

此代码中不能出现 <%-- <asp:UpdatePanel ID="UpdatePanel1" runat="server">

                                <ContentTemplate>--%>

另外必须有        <asp:ScriptManager ID="ScriptManager1" runat="server">

                           </asp:ScriptManager>

后台代码:

        protected void rptFile_ItemCommand(object source, RepeaterCommandEventArgs e)

        {

            string AttaName = e.CommandArgument.ToString();

            if (e.CommandName == "download")
            {
                string fileName = AttaName;//客户端保存的文件名
                string filePath = Server.MapPath("../UploadFile/Project/" + AttaName);//路径

                //以字符流的形式下载文件

                FileStream fs = new FileStream(filePath, FileMode.Open);
                byte[] bytes = new byte[(int)fs.Length];
                fs.Read(bytes, 0, bytes.Length);
                fs.Close();
                Response.ContentType = "application/octet-stream";
                //通知浏览器下载文件而不是打开
                Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
                Response.BinaryWrite(bytes);
                Response.Flush();
                Response.End();

            }

        }

 

转载地址:http://wgnei.baihongyu.com/

你可能感兴趣的文章
谷歌面试题,你敢回答吗。
查看>>
Android 安全攻防(一):SEAndroid的编译
查看>>
Android 安全攻防(二): SEAndroid bionic
查看>>
cuda如何做软连接切换
查看>>
小飞机的一些设置解释
查看>>
目标检测里正负样本和数据增广
查看>>
python和C++的交互方式
查看>>
ubuntu快捷键
查看>>
npaint (31M)-图片去水印等
查看>>
学英语以及中文快速阅读的启迪,从“为什么全世界只有中日两个国家弹幕视频网站成为流行?”说开去
查看>>
什么是人工神经网络
查看>>
神经网络的发展历史
查看>>
TED演讲:Jeff Hawkins.大脑的工作原理是什么
查看>>
所谓的语义信息
查看>>
Predictive learning vs. representation learning
查看>>
android SDK工具下载
查看>>
Hibernateday02表的唯一外键
查看>>
Hibernateday06 SQLQuery 和NameQuery
查看>>
Windows命令行提示
查看>>
梳理《前目的地》
查看>>