PHP:下载文件脚本不适用于iPad

我有一个我编写的文件下载脚本,它从下面的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');

这个脚本已经在多台浏览器(FF,Opera,IE6-9,Chrome,Safari)上的PC,Mac和Linux机器上进行过测试和检查,并且都可以正常工作,所以它必须是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');

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


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

链接地址: http://www.djcxy.com/p/46879.html

上一篇: PHP: Download file script not working on iPad

下一篇: type while uploading an object is important