• 6013阅读
  • 0回复

用PHP写下载文件的那部分代码 [复制链接]

上一主题 下一主题
离线supwater
 
只看楼主 正序阅读 楼主  发表于: 2008-03-21
问题来自于,下载文件时,下到的总是PHP页面文档,而且还打不开.
网上没有找到相关问题的解决办法,所以在这里希望能得到大家的帮助.以下是我的两个文件,downfiles.php和download.php.
1,downfiles.php
<?php
session_start();
if (!(session_is_registered("CID"))){//验证
print "<a href=\"login.php\">Please log in first</a>";
exit;
}
?>
<html>
<head></head>
<body>
<?php
$files=dir("./download/");//列出该文件夹下所有文件
$i=-1;
while(false!==($filename=$files->read())){
if(($filename=='.')||($filename=='..')){continue;}//排除两个文件,.and..
?>
<a href="download.php?filename=<?php print "$filename";?>"><?php print "$filename";?></a>
<br>
<?php
}
?>
<a href="login.php">back</a>
</body>
</html>
这里有两个问题:一,我不太想把filename参数放在浏览器里进行传递,但还有哪些办法可以做到?
二,这里的链接打开,直接下载的是download.php,这可能跟第二个文件有关,请接下来看.
2,download.php
<?php
session_start();
if (!(session_is_registered("CID"))){
print "<a href=\"login.php\">Please log in first</a>";
exit;
}
$file=$filename;
$filename = "./download/".$file;
$downfilename = $file;

Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($filename));
Header("Content-Disposition: attachment; filename=".$downfilename);
$file = fopen($filename,"r");
echo fread($file,filesize($filename));
fclose($file);
?>
这里还有一个问题:三,在本地测试的时候,只能对文件进行保存下载,而不能直接打开.
综合一下问题是:如何解决下载文件时,只能下到代码文件.这两个文件是否能合成一个.请高手留下解决办法.
谋事在人,成事在天!
快速回复
限100 字节
 
上一个 下一个