2

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

我正在尝试在 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 ");

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

谢谢!

4

1 回答 1

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örg Wagner。

于 2013-10-18T09:11:58.377 回答