我的脚本下载页面源而不是实际文件

时间:2014-12-05 21:28:50

标签: php mysql

我的下载脚本有问题..所以我制作了一个上传脚本 - >它将文件添加到名为Uploads的文件夹中,并将id,filename和link插入数据库。但是我找不到下载上传文件的方法。这是我的下载脚本:

 <?php
     include('config.php');
     $dwquery = mysqli_query($db, "SELECT id, filename FROM files");

     $id = intval($_GET['id']); 
         while ($row = mysqli_fetch_array($dwquery)) {
            echo '<a href="download.php?id='.$row['id'].'">'.$row['filename'].'</a><br />';
        }

       $download = mysqli_query($db, "SELECT link FROM files WHERE id=$id");
        $link = mysqli_fetch_array($download);

        if($id != '') {
        header('Content-disposition: attachment; filename='.$link[0]);
        readfile($_SERVER['DOCUMENT_ROOT'] . '/project/' .$link[0]);
        }

    ?>

当我选择下载哪个文件时,只需下载页面的源代码而不是实际文件。

编辑:它实际上下载了download.php的源代码+我要下载的文件中的文本/代码。所以它得到了回声:

echo '<a href="index.php"> Index </a> / <a href="upload.php"> Upload </a> / <a href="download.php"> Download </a> / <a href="logout.php"> Logout </a><br />';

下载的文件是:

<a href="index.php"> Index </a> / <a href="upload.php"> Upload </a> /
<a href="download.php"> Download </a> / <a href="logout.php"> Logout
</a><br /><a href="download.php?id=6">test1.php</a><br /><a
href="download.php?id=5">test2.txt</a><br />

and here's the actual code of the file

1 个答案:

答案 0 :(得分:0)

您的代码如下所示:

Show list of files
IF a download id is provided:
    Show the content of that file

它应该是这样的:

IF a download id is provided
    Show the content of that file
ELSE
    Show list of files

由于您没有检查文件是否存在错误,因此您可能也错误地获取了文件的路径。