日期:2014-05-16  浏览次数:20338 次

使用超链接下载txt,但却直接打开了
我现在先做一个下载的 如果是txt和图片浏览器就直接打开了 execl可以下载 求各位高手帮忙 最好js解决 不行.net也行

------解决方案--------------------
如果直接打开,需要装在线浏览的插件的吧
------解决方案--------------------
后台设置response的 mate-type是流
差不多这个意思
------解决方案--------------------
You need to set value of the mime-type from text/html to object/stream.
------解决方案--------------------
.net 不会 asp是这样的
VB code
'*************************************************
'作    用:本程序的作用是直接下载文件而不是在IE中打开,如html、txt、asp、jpg文件等
'参数说明:file_url为下载文件地址
'*************************************************
Sub Scs_download(file_url)
    Dim Scs,ture_url,filename,exe_name,file_name
    ture_url=server.MapPath(file_url)
    file_name=Mid(ture_url,instrRev(ture_url,"\")+1)
    exe_name=Mid(file_name,instrRev(file_name,".")+1)'后缀名
    filename=Mid(file_name,1,instrRev(file_name,".")-1)'文件名
    Set Scs=CreateObject("Adodb.Stream")
    Scs.Mode=3
    Scs.Type=1
    Scs.Open
    Scs.LoadFromFile(ture_url)
    Response.ContentType="application/octet-stream"
    Response.AddHeader "Content-Disposition:","Attachment;filename="&Server.UrlEncode(filename)&"."&exe_name
End Sub

call Scs_download("txt/asp.asp") '示例

------解决方案--------------------
C# code
DayBonusList.DataSource = dt;//数据源;
            DayBonusList.DataBind();
            HttpContext.Current.Response.Charset = "utf-8";
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;

            HttpContext.Current.Response.ContentType = "application/ms-excel";


            excelname = HttpUtility.UrlEncode("Excel表格", System.Text.Encoding.UTF8);
            HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment;filename=" + excelname + ".xls");
            
            EnableViewState = false;
            
            System.IO.StringWriter tw = new System.IO.StringWriter();//将信息写入字符串
            System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);//在WEB窗体页上写出一系列连续的HTML特定字符和文本。
            //dt.Clear();
            DayBonusList.RenderControl(hw);//将DATAGRID中的内容输出到HtmlTextWriter对象中
            // 把HTML写回浏览器
            Response.Write(tw.ToString());
            Response.End();

------解决方案--------------------
当然,你也可以在IIS中进行配置
IIS管理器--右键--属性--MIME类型
当然,这样的话,你上传至服务器后要求服务器也做这样的配置

可以适当了解一下MIME设置