如何在移动浏览器上使用 PHP 强制下载文件?
我想编写一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试使用以下标题:
这个想法是将内容类型设置为浏览器不知道如何打开的内容 - 这样它将显示保存对话框。您可以尝试使用实际的 MIME 类型,它应该可以工作,但我现在无法测试它。
Try with the following headers:
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.