当前位置:Gxlcms > PHP教程 > 设计了一个php下载当前文件,却把php源文件下载下来了,为何?

设计了一个php下载当前文件,却把php源文件下载下来了,为何?

时间:2021-07-01 10:21:17 帮助过:29人阅读

当我点a.txt下载后,打开txt文件,发现里面的内容不是a.txt本身的内容,而是该php文件中除了php代码的其他文本内容,这样该如何解决?
资料下载


回复讨论(解决方案)

$file_name="a.txt";
$file_dir="./";
if(!file_exists($file_dir.$file_name)){
echo "文件找不到";
exit;
}else{
$file=fopen($file_dir.$file_name,"r");//打开文件
//echo($file_dir.$file_name);
Header("Content-type: application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Accept-Length:".filesize($file_dir.$file_name));
Header("Content-Disposition: attachment; filename=".$file_name);
readfile($file_dir.$file_name);
}





资料下载





把这些放到if里。

$file_name="a.txt";
$file_dir="./";
if(!file_exists($file_dir.$file_name)){
echo "文件找不到";
exit;
}else{
$file=fopen($file_dir.$file_name,"r");//打开文件
//echo($file_dir.$file_name);
Header("Content-type: application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Accept-Length:".filesize($file_dir.$file_name));
Header("Content-Disposition: attachment; filename=".$file_name);
readfile($file_dir.$file_name);
} 我照你那样的改了,可以显示出内容了,但是是显示在body里……

资料下载这是我的内容。

那些html标签就不要了,就像我#1的那样。

因为你的是下载,所以程序中的一切输出,都是被下载文件的内容
尽管你的 Header 函数是在后面执行的,但 php 会将其调动到响应的 http 头中
程序中你只打开了文件,但没有读取和输出文件内容
至少要写作

 

那些html标签就不要了,就像我#1的那样。 嗯,问题解决了,谢谢!

人气教程排行