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

时间:2013-10-17 19:31:59

标签: 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 ");

知道如何在移动设备中对此进行排序吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

我明白了!

有不同的问题。我在这篇文章的评论中找到了明确的解决方案: 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örgWagner。