我已经搜索了很长时间,但还没有看到任何正确的答案。
我正在尝试在PHP中创建一个系统,用户可以在其中下载我在JPG中创建的signPicture。该程序在所有台式计算机上运行良好。完全没有问题,即使对于IE8也是如此。
我使用的标头:
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="test.jpg"');
最后我只是流式传输图片:
imagejpeg($imgSign,NULL,100);
我怎么说的,它在每个浏览器中都运行得非常好。但是然后我们到了移动设备,例如在 android 中,下载测试.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"');
重要步骤:我用表格发送所有内容。要使其在移动设备中工作,表单需要具有目标='_top'和方法='get'
如果扩展名 (jpg) 不是大写的,并且文件名不在" "之间,也会出错。
现在它适用于我迄今为止尝试的所有设备。 :)
特别感谢该帖子的作者Jörg Wagner。