我在 Android 平板电脑(Motorola Xoom)上的开箱即用浏览器中从我的自定义 asp.net 站点下载 PDF 文件时遇到问题。
我正在使用 Response.OutputStream.Write 发送文件,因为它必须从 UNC 路径读取文件。此方法适用于 IE、Firefox、Safari 和 iPad,但不适用于 Xoom 上的浏览器。但是,当我在 Xoom 上下载 Firefox 时,我能够很好地下载文件。
我发现有几个地方建议我使用以下 header : 内容类型:应用程序/八位字节流 Content-Disposition:附件;文件名="我的文件名.PDF"
我已经试过了,但没有成功。我还尝试使用 application/pdf 和 application/force-download 的 Content-Types 以及文件名大写、扩展名大写、扩展名小写、双引号、单引号、无引号等的每种组合......用于 Content-Disposition 并且还没有找到任何有用的东西。
我还发现,如果我在 Page_Load 上执行下载文件的代码,它可以下载,但如果我执行回发,然后执行代码(单击链接按钮下载文件),它就不会下载工作
有没有人能够在 OOTB Android 3.0 浏览器上使用自定义 C# 代码下载文件?
最佳答案
这是旧的,但万一有人遇到这个问题:
在设置 --> 应用程序下检查未知来源。
确保您在 IIS 服务器上的 MIME 类型 (application/pdf) 中定义了 PDF。
此外,如果您使用的是文件处理程序,则需要设置 header 信息。
此代码块是文件处理程序中使用的示例:
string dirpath = System.Configuration.ConfigurationManager.AppSettings["FilePath"];
string file = System.Configuration.ConfigurationManager.AppSettings["FileName"];
System.IO.FileInfo fi = new System.IO.FileInfo(dirpath + file);
string contentlen = fi.Length.ToString();
context.Response.Buffer = true;
context.Response.Clear();
context.Response.AddHeader("content-disposition", "attachment; filename=" + file);
context.Response.AddHeader("content-length", contentlen);
context.Response.ContentType = "application/pdf";
try
{
context.Response.WriteFile(dirpath + file);
}
catch (Exception)
{
context.Response.Redirect("Error.aspx");
}
关于c# - 从我的 ASP.NET 站点在 Android 3.0 浏览器中下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900604/