我需要从保存的目录下载文件。我使用了以下代码
$sqlh = mysql_query("SELECT * FROM tbl_health WHERE tbl_users_users_id = '".$id."'", $con) or die(mysql_error());
while($data = mysql_fetch_array($sqlh)){
$data['link'];
echo "<a href='view.php?id=" .$data['health_id']. "'>Download</a>";
}
view.php是
require_once('includes/db.php');
if(isset($_GET['id'])){
$sql = mysql_query("SELECT * FROM tbl_health WHERE health_id='".$_GET['id']."'") or die(mysql_error());
echo $_GET['id'];
$data = mysql_fetch_array($sql);
$file = $data['link'];
$name = "health/".$file;
header("Content-Type: application/pdf");
header("Content-Length: ". filesize($name));
header("Content-Disposition:attachment;filename=". $file);
$fp = @fopen($name, "r");
fclose($fp);
}
文件正在下载,但是当我打开它时,文件内容丢失了。当我尝试通过浏览器打开它时,此PDF文档可能无法正确显示。
任何人都可以告诉我我的错误。
答案 0 :(得分:1)
首先,如果您检查错误,则在标头调用之前echo
应该给您一个错误。
然后fopen
创建一个流句柄,但你什么都不做。 readfile()
会将文件发送给客户。