1

Web サーバーのディレクトリ内に .pdf、.doc、.txt ファイルを保存しました。ディレクトリ内に保存されているすべてのファイルを表示できますが、ダウンロードは失敗します。ハイパーリンクをクリックするたびに、sample.txt が空のコンテンツでダウンロードされます。コードを調べて提案してください。

これは私がshow_directory.phpで使用しているものです

<?PHP
    // Define the full path to your folder from root 
    $path = "/public_html/bc/upload/"; 

    // Open the folder 
    $dir_handle = @opendir($path) or die("Unable to open $path"); 

    // Loop through the files 
    while ($file = readdir($dir_handle)) { 

    if($file == "." || $file == ".." || $file == "download_file.php" ) 

        continue; 
        echo "<a href=\"download_file.php\">$file</a><br />"; 


    } 
    // Close 
    closedir($dir_handle); 
?>

download_file.php の内容は次のとおりです。

<?PHP
//download.php
//content type
header('Content-type: text/plain');
//open/save dialog box
header('Content-Disposition: attachment; filename="sample.txt"');
//read from server and write to buffer
readfile('test.txt');
?>
4

1 に答える 1

0
....
header('Content-Description: File Transfer');
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . 'test.txt' . '"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
readfile('test.txt');
....

なぜバイナリを使わないのですか?

于 2012-09-18T07:03:55.417 に答える