在移动浏览器上下载php force

时间:2010-09-06 11:26:43

标签: php android

我正在尝试使用php强制下载图像文件(例如jpg)。所以我在这里有一个脚本 force.php ,这里是代码:

header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header('Content-Description: File Transfer');
header("Content-Type: image/jpeg");
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename=test.jpg');
readfile($file);

现在问题出现在某些浏览器(特别是手机浏览器)上,它会正常工作并提示test.jpg供用户保存。但是在某些浏览器上,它会提示force.php作为下载。任何解决方案?

谢谢!

2 个答案:

答案 0 :(得分:0)

内容处置标头高度取决于特定浏览器如何实现它。有时会出现编码问题(在我的案例中我没有看到)。

Test Cases for HTTP Content-Disposition处的文档显示了各种浏览器的行为。

答案 1 :(得分:0)

为了安全使用移动浏览器,您应该考虑让http请求的最后一部分等于附件的实际文件名,例如http://some.url/download/test.jpg

使用apache mod_rewrite或类似方法将此类请求路由到您的下载脚本。