我在php上使用readfile函数时遇到了不好的时间。我正在设置一个Web文件服务器,但许多用户都有下载问题。 基本上,我在我的电脑上使用Chrome,一切正常。一些用户在Android浏览器上遇到问题:他们获得.bin文件而不是og .doc,或者获得正确的.doc文件,但他们无法打开它。此外,有人在计算机上获取损坏的.doc文件。 我在这个网站上已经阅读了很多问题,但它们并没有那么有用。
由于我尝试了很多解决方案,因此我将发布一个缩短的代码段,以便了解我要完成的工作。我使用的是apache2,不是配置问题吗? 有人也有我的问题吗?
<?php
//here I take the user, the pwd and the file RELATIVE path
//there are no errors here
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: Binary');
header('Content-disposition: attachment; filename="' . $name . '"');
readfile($file);
?>
编辑:完整代码
<?php
session_start();
$data = $_SESSION['data'];
$name = $_GET['name'];
if (isset($data)) {
//private file
$file = "path/".$data."/".$name;
} else {
//public file
$file = "path/public/".$name;
}
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . $name . "\"");
readfile($file);
?>