在多个设备上使用readfile?

时间:2014-10-01 18:50:49

标签: php html file-io header

我在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);


?>

0 个答案:

没有答案