0

ユーザーがこのリンクをクリックするとファイルをダウンロードできる PHP ページを作成しました。

<a href="download_pdf.php?pubid=<?php echo $row_rsPublications['pubID']; ?>&amp;file=<?php echo $row_rsPublications['file']; ?>">Download File</a>

リンク先のダウンロード ページも作成しました。

<?php 

 if(isset($_GET['file'])) {

    $fileID = $_GET['pubid'];
    $filename= ($_GET['file']);
    $path = "admin/pubfiles/";
    $fullPath = $path . $filename;
    mysql_select_db($database_connDioceseofife, $connDioceseofife);
    $sql  = "SELECT file FROM publications WHERE pubID = $fileID";
    $result = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_assoc($result);

    if($filename == NULL) {
        die('No file exists or the name is invalid!');
        }

    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header("Content-Disposition: attachment; filename=\"$filename\"");
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    readfile($fullPath);

}
?>

今私の問題は、ダウンロード ポップアップ ウィンドウが表示されたときに、ファイルが 0 バイトであると表示されることです。そして、ダウンロードしても開けません。サポートされているファイル タイプではないか、損傷または破損しているというメッセージが表示されます。

どんな助けでも大歓迎です。

4

2 に答える 2

0

$rowのクエリ結果では何もしていません。

$ row ['file']を使用して、実際のファイル自体を取得します。

于 2013-01-26T14:39:18.270 に答える
0

私を助けてくれてありがとう。さらに読んだ後、問題を解決できました。私が書いた最初のスクリプトを更新しました。上記が作業スクリプトです。私がしたことは、インクルードし、次に readfile 関数を からに$fullpath = $path . $filename変更することでした。@nlsbshtr と他の皆様のご協力に感謝いたします。header("Content-Disposition: attachment; filename=\"$filename\"");readfile($path)readfile($fullpath)

于 2013-01-26T17:58:27.687 に答える