-1

ヘッダーを追加することがリンクをダウンロード可能にする方法であることはかなりよく文書化されていますが、私は何か間違ったことをしているに違いありません. ファイルを作成し、それにリンクする HTML を生成しますが、ファイルはダウンロードされず、ブラウザーに表示されるだけです。

<?

   //unique id
   $unique = time();

   $test_name = "HTML_for_test_" . $unique . ".txt";

   //I should put the file name I want the header attached to here (?)
   header("Content-disposition: attachment;filename=$test_name");

   $test_handler = fopen($test_name, 'w') or die("no");

   fwrite($test_handler, $test);
   fclose($test_handler);

?>

<a href="<?=$test_name">Download File</a>
4

2 に答える 2

0

HTML タグをエコーし​​ているだけです。PHP Docで提案されているように、代わりにファイルの内容を読む必要があります。

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>
于 2013-08-08T17:01:59.213 に答える