簡體   English   中英

PHP下載腳本無法下載上傳的文件

[英]PHP download script cannot download uploaded files

我想在我的網站上創建上傳和下載功能。 上載腳本有效,但下載腳本無效。 我沒有收到任何錯誤,但是一旦從數據庫中檢索了文件,便無法下載。 如果我單擊該文件,則文件內容將在同一頁面中打開。

        <?php
        $query = "SELECT id, name FROM upload";
        $result = mysql_query($query) or die('Error, query failed');
        if(mysql_num_rows($result) == 0) {
            echo "Database is empty <br>";
        } else {
            while(list($id, $name) = mysql_fetch_array($result)) {
                ?>
                <a href="download.php?id=<?php echo urlencode($id);?>"><?php echo urlencode($name);?></a> <br>
                <?php
            }
        }
        mysql_close();
        ?>
    </body>
</html>
<?php
if(isset($_GET['id'])) {
    // if id is set then get the file with the id from database
    $id    = $_GET['id'];
    $query = "SELECT name, type, size, content " .
    "FROM upload WHERE id = '$id'";
    $result = mysql_query($query) or die('Error, query failed');
    list($name, $type, $size, $content) = mysql_fetch_array($result);
    header("Content-length: $size");
    header("Content-type: $type");
    header("Content-Disposition: attachment; filename=$name");
    ob_clean();
    flush();
    echo $content;
    mysql_close();
    exit;
}
?>

這是下載站點的URL: 下載

輸出發送 到瀏覽器 后, 您將無法設置任何標題 顯然,在您執行最后的代碼時,已經完成了此操作,因為您上面已經有了HTML代碼。

它應該通過將代碼放在腳本的頂部而不是底部來工作。

明智的選擇,聽起來您沒有任何錯誤。 您至少應在本地/開發環境中打開錯誤報告:

error_reporting(E_ALL);

這可能會立即告訴您問題的原因並幫助您快速診斷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM