【问题标题】:How to Force a file to download using PHP on mobile Browsers?如何在移动浏览器上使用 PHP 强制下载文件?
【发布时间】:2011-11-19 15:57:16
【问题描述】:

我想编写一个 php 脚本来在移动浏览器上下载一些文件(扩展名 - .apk、.dcm、.pdf、.zip 等...)。我已经编写了一个 php 代码来下载这些文件,并且它在所有浏览器(不是移动浏览器)上都可以正常工作。但我使用 HTC 手机进行了尝试,它试图打开文件而不是下载(比如打开网页)。

如何在移动浏览器上启用下载?

谢谢

PS: 我就是这样做的。 我使用 jquery 代码将一些参数发送到 php 文件,它会返回相应的下载文件路径。

jQuery 代码 sn-ps 是:

$.post('saveData.php',{ name: name.val(), email: email.val(), phone:phone.val(), address:address.val(), version:vers, swVersion:swvers, type:type }, 
function(data) 
{                       
    var links = data;
    document.body.innerHTML += "<iframe src='" + links + "' style='display:hide;' ></iframe>";
});

“links”变量包含从 php 文件返回的下载路径。 iframe 允许弹出下载窗口。但它不适用于移动浏览器。

【问题讨论】:

  • 您是否发送了正确的 mime 类型标头??
  • 这信息太少了。请显示一些代码
  • 我就是这样做的。我使用 jquery 代码将一些参数发送到 php 文件,它将返回适当的下载文件路径。 jQuery 代码 sn-ps 为:$.post('saveData.php',{ name: name.val(), email: email.val(), phone:phone.val(), address:address.val(),版本:vers, swVersion:swvers, type:type }, function(data) { var links = data; document.body.innerHTML += ""; }); “links”变量包含从 php 文件返回的下载路径。 iframe 允许弹出下载窗口。

标签: php file browser mobile download


【解决方案1】:

尝试以下标题:

header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename="filename"');

这个想法是将内容类型设置为浏览器不知道如何打开的内容 - 这样它就会显示保存对话框。您可以使用实际的 MIME 类型进行尝试,它应该可以工作,但我现在无法测试它。

【讨论】:

  • 赞成,但建议您提出建议而不是问题
  • 这仍然在 iPhone 的浏览器中播放 MP3。我希望有一种方法可以允许下载但阻止流式传输。
猜你喜欢
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 2010-12-27
  • 1970-01-01
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
相关资源
最近更新 更多