我在使用Firefox下载的文件上使用无效的签名证书时出现问题。 IE,Opera,Safari和Chrome都很好。如果通过单击FF中的链接直接下载文件,它也可以,但如果使用PHP下载文件以保证安全,则它大1个字节,最后添加x0A,我认为这会导致验证检查失败。 PHP非常简单:
<?php
$file = "../downloads/".$_GET['link'];
$size = filesize($file);
$type = filetype($file);
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header( "Content-Disposition: attachment; filename=".basename($file));
header("Content-Length: ".$size);
header("Content-Type: ".$type);
readfile($file);
?>
有没有人知道为什么单凭Firefox应该在缩小尺寸方面遇到问题?感谢任何想法。
答案 0 :(得分:4)
?>
,将其发送到浏览器后的每个空格exit;
以确保不会调用生成输出的其他函数。答案 1 :(得分:1)
检查Content-Type标头,你设置它两次所以后者将被使用,它可能是类似“Content-Type:file”的东西,因为函数filetype(),浏览器无法理解“文件“内容类型并将其作为文本文件。我猜这是额外的0x0a的原因 注释“header(”Content-Type:“。$ type);”它会正常工作。
答案 2 :(得分:0)
替换下面的行
<?php
header("Content-Length: ".strlen($file));
?>
祝你好运:)