PHP将文件检索到Tablet失败

PHP将文件检索到Tablet失败,php,streaming,tablet,Php,Streaming,Tablet,我们的系统在webroot上存储用户上传的文件,文件名存储在DB中。当用户想要下载时,他们单击文件名,我们的下载页面使用以下命令获取文件 header('Content-Type: '.$mime); header('Content-Disposition: attachment; filename="'.$filename.'"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.sprintf('

我们的系统在webroot上存储用户上传的文件,文件名存储在DB中。当用户想要下载时,他们单击文件名,我们的下载页面使用以下命令获取文件

header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.sprintf('%d', $filesize));
header('Expires: 0');

// check for IE only headers
if (isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false)) {
   header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
   header('Pragma: public');
} else {
   header('Pragma: no-cache');
}

$handle = fopen($filepath, 'rb');
fpassthru($handle);
fclose($handle);
现在,它似乎在所有浏览器中都能工作,但当我们尝试使用iOS或Android设备时,什么也没发生。希望有人能看到我错过的东西。我刚开始为手持/平板设备开发

谢谢

您可以查看

标题(“内容类型:应用程序/八位字节流”)


而不是提供mime类型。

抱歉。。。这就是$mime目前的含义。如果我们想在arraydouble检查中指定可能的mime类型,这是一个变量。相关浏览器提供了对此类HTTP响应的下载支持。它在Mac/PC上的Safari上工作,但iPhone、iPad只是暂停(无错误)。和我们测试的基于蜂巢的Android平板电脑一样。。。我想这可能是Chrome的一个变种,它在PC/Mac端也可以正常工作。查看浏览器文档。