php - 在智能手机和平板电脑中使用 header() 强制使用 php 下载图像

标签 php iphone image ipad smartphone

我已经搜索了很长时间,但还没有看到任何正确的答案。

我正在尝试用 PHP 创建一个系统,用户可以在其中下载我以 JPG 格式创建的signPicture。 该程序在所有台式计算机上运行良好。即使对于 IE8 也完全没有问题。

我使用的标题:

header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="test.jpg"');

最后我只是流式传输图片:

imagejpeg($imgSign,NULL,100);

我说过,它在每个浏览器中都运行得很好。但是然后我们到达移动设备,例如在 android 中,下载一个 test.jpg 文件...但随后它无法打开...与 ipad 相同(实际上不下载,它在浏览器中显示图像并且比我保存它...但它也打不开)。

我还尝试了更多我看到的例子,但没有改变任何东西,例如:

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type: application/force-download");
header("Content-Type: application/download");
header("Content-Transfer-Encoding: binary ");

知道如何在移动设备中解决这个问题吗?

谢谢!

最佳答案

我明白了!

存在不同的问题。我在这篇文章的评论中找到了明确的解决方案: http://www.digiblog.de/2011/04/android-and-the-download-file-headers/

header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="test.JPG"');

重要步骤:我用表格发送所有内容。为了使其在移动设备上工作,该表单需要有 target='_top' 和 method='get'

如果扩展名(jpg)不是大写并且文件名不在“”之间,也会出错。

现在它可以在我迄今为止尝试过的所有设备上运行。 :)

特别感谢该帖子的作者 Jörg Wagner。

关于php - 在智能手机和平板电脑中使用 header() 强制使用 php 下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19435581/

相关文章:

php - 从单独的应用程序连接到 mysql 数据库

php - 以表格形式显示此内容的最佳方式?

php - 如何使用html和php上传音频文件?

php - 加密会破坏 MySQL 查询吗?

iphone - Facebook SDK iOS - 授权应用内?

image - 如何以编程方式对图像是 'personal' 的可能性进行评分?

iOS 11+ 如何将现有核心数据迁移到共享应用组以用于扩展?

ios - 从 Firebase 检索数据到标签 'Swift Project'

css - 如何在 Internet Explorer 9/10 和 FF 中提高调整后的图像质量

java - 在 Java 小程序中加载图像 AccessControlError