PHP:下载文件脚本在iPad上不起作用

PHP:下载文件脚本在iPad上不起作用,php,ipad,http-headers,Php,Ipad,Http Headers,我有一个我编写的文件下载脚本,它从public_html下面读取文件,并允许用户在检查用户是否登录以及该文件是否有效后下载它们 我最近遇到的一个问题是,在iPad上点击链接时,它什么都做不了 完成所有检查后下载文件代码示例: header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Contro

我有一个我编写的文件下载脚本,它从public_html下面读取文件,并允许用户在检查用户是否登录以及该文件是否有效后下载它们

我最近遇到的一个问题是,在iPad上点击链接时,它什么都做不了

完成所有检查后下载文件代码示例:

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/msword");
header("Content-Disposition: attachment; filename=\"file.doc\";" );
header("Content-Length: 50688");

readfile(SITE_PATH .'/files/file.doc');
这个脚本已经在PC机、Mac机和Linux机上在多个浏览器(FF、Opera、IE6-9、Chrome、Safari)中进行了测试和检查,所有这些浏览器似乎都工作正常,因此iPad的功能肯定有所不同

我想这与iPad没有下载文件的文件结构有关,但我不确定


以前有人遇到过这个问题吗?如果是,是否有解决方案?

iOS Safari不支持文件下载

更新:但是如果你想在iPad上打开.doc文件,那么是的。。你可以这样做

使用下列各项—

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/msword");


readfile('file.doc');
你的代码和我的代码唯一的区别是我删除了附件的标题 只需移除这些标题-

header("Content-Disposition: attachment; filename=\"file.doc\";" );
header("Content-Length: 50688");
实际上,如果操作系统是iOS,您可以检查客户端操作系统,然后不要像这样添加下载头-

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/msword");

if (!Operating_System_Is_IOS)
{

     header("Content-Disposition: attachment; filename=\"file.doc\";" );
     header("Content-Length: 50688");

}

readfile(SITE_PATH .'/files/file.doc');

苹果已经锁定了iOS设备,因此您无法访问文件结构。因此,他们已禁用文件下载。

您可以强制用户将链接粘贴到任何第三方应用程序(如GoodReader)中(由于登录,链接中的ID有时间限制)。
或者让他们在浏览器中查看文档。

通常iPad会打开这些文档(如果直接链接到)。那么,我能做些什么来模仿这种行为吗?i、 e.打开而不是尝试下载。无关:您有两个内容类型标题字段。挑一个。此外,内容传输编码不是HTTP头字段。@JulianReschke删除了这些字段,似乎没有效果。更新问题以反映。