如何在移动浏览器上使用 PHP 强制下载文件?

发布于 2024-12-05 07:48:35 字数 692 浏览 0 评论 0原文

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

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

谢谢你

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

jQuery 代码片段是:

$.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 允许弹出下载窗口。但它不适用于移动浏览器。

I want to write a php script to download some files(extensions - .apk, .dcm, .pdf, .zip etc...) on mobile browsers. I have written a php code to download those files and it is working fine on all the browsers(not mobile browsers). But I tried it using a HTC mobile and it is trying to open the file instead of downloading(like opening a web page).

How can I enable the download on mobile browsers?

Thank You

PS:
This is how I do it.
I use a jquery code to send some parameters to a php file and it will return the appropriate download file path.

jQuery code snippets is:

$.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" variable contains the download path return from the php file.
Iframe allow the download window to popup. But it does not work on the mobile browsers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

长亭外,古道边 2024-12-12 07:48:35

尝试使用以下标题:

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

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

Try with the following headers:

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

The idea is to set the content type to something that the browser doesn't know how to open - that way it will show the save dialogue. You can try it with the actual MIME type, it should work, but I can't test it right now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文