-1

txt ファイル (オンザフライで作成) を自動的にダウンロードしようとしています。ユーザーが txt をダウンロードする代わりに、txt を表示するページにリダイレクトされるため、次のコードは機能しません。代わりに、フォーム (コードの上部) をクリックすると、ページが更新され (これが発生します)、ファイルがダウンロードされます。ファイル形式を rtf に変更すると、たとえばダウンロードできますが、txt にはできません。

=================コードが機能しない==================

      echo "
      <form name=\"fn\" action=\"index.php?option=com_comp\" method=\"post\">
      // more not related stuff
      <input type=\"image\" src=\"".JURI::root().
      "components/com_comp/images/download_icon.png\" .
      "\" name=\"downloadaddresses\">DOWNLOAD_RESULTS
      // more not related stuff";


      if($_POST['downloadaddresses_x']!=0) {

            $myfilename = "tmp/results.txt";
            $fh = fopen($myfilename, 'w');

            $recipients = $_POST['recipients'];
            $semicolon_separated = implode(";", $recipients);
            fwrite($fh, $semicolon_separated);
            fclose($fh);

            echo "<a href=\"".$myfilename."\" id=\"downloadlink\">
            This download should start automatically!</a>";
            echo "<script type=\"text/javascript\">
                     location.href = document.getElementById('downloadlink').getAttribute('href');
                </script>";
        }           
4

2 に答える 2

4

PHPファイルのヘッダーにコンテンツタイプを指定する必要があります

header('Content-Type: text/plain'); 
header('Content-Disposition: attachment; filename="your_filename_here.txt"');
echo file_get_contents('path_to_file.txt');
于 2012-09-13T20:04:45.737 に答える
0

ヘッダー、あなたはこれを手に入れました。

header("Content-type: text/plain")
于 2012-09-13T19:59:56.430 に答える