文件下载错误 - 在android浏览器的html扩展名中下载文件

时间:2014-02-25 09:08:24

标签: c# android html

我正在开发一个网站,用户可以从网站下载附件。下载功能在所有桌面浏览器中都能正常工作,但在android浏览器中下载失败。文件下载为“.htm”扩展名。你可以在下面找到下载脚本(c#):

protected void lnkButton_Click(object sender, EventArgs e) {
    try {

        LinkButton lnkButton = (LinkButton)sender;
        System.IO.FileInfo currentFIleInfo = new System.IO.FileInfo(lnkButton.CommandArgument);

        if(currentFIleInfo.Exists) {
            Response.Clear();

            Response.AddHeader("Pragma", "no-cache");
            Response.AddHeader("Cache-Control", "no-cache");

            Response.AddHeader("Content-Disposition", "attachment; filename=""" + lnkButton.Text.ToUpper() + """" ); 
            Response.AddHeader("Content-Length", currentFIleInfo.Length.ToString());
            Response.ContentType = "application/octet-stream"; 
            Response.TransferFile(currentFIleInfo.FullName);
            Response.End();
        }
    } catch(Exception ex) {
        MMHLogger.Error(ex);
    }

}

我的aspx页面看起来像这样

<table border="0" cellpadding="0" cellspacing="3px">
                            <tr>
                                <td>
                                    <a href='<%# Eval("FileName", "../SiteContent/Uploads/{0}") %>' target="_blank">
                                        <asp:Image ID="Image1" ToolTip='<%# Eval("AlternativeText")%>' AlternateText='<%# Eval("AlternativeText")%>' ImageUrl='<%# Eval("FileName", "ImageThumbnailer.ashx?img=SiteContent/Uploads/{0}&size=72") %>' runat="server" BorderWidth="0" />
                                    </a>
                                </td>
                                <td>
                                    <%# Eval("ImageName")%>
                                    <br />
                                    <%# Eval("ImageSize")%>
                                </td>
                                <td>
                                    <a href='<%# Eval("FileName", "../SiteContent/Uploads/{0}") %>' target="_blank">View</a>
                                </td>
                            </tr>
                        </table>

我尝试了此博客中列出的所有建议:http://www.digiblog.de/2011/04/android-and-the-download-file-headers/

但仍然在Android浏览器中以.htm扩展名下载文件。

1 个答案:

答案 0 :(得分:0)

99%的错误是你错过了MIME类型中的“ - ”。 正确的是:

application/octet-stream

所以基本上是android它没有检测到正确的类型。