この問題は他の問題の問題と異なります。その問題はIF状態に関するものでした。しかし、この問題は、ファイルをダウンロードするのではなく、次のページに印刷しています。この質問を他の人と混同しないでください。Phpテキストボックスの出力がダウンロードする代わりに印刷されます
テキストボックスの出力をダウンロードするスクリプトを作成しました。このスクリプトはローカルサーバー上で正常に動作し、ファイルを正常にダウンロードしますが、ライブサーバーにスクリプトを置くと、ダウンロードファイルは機能しません。 download output
ボタンをクリックすると、ファイルをダウンロードする代わりに、ページの出力が次のページに表示されます。
<?php
error_reporting(0);
$mytext = "";
$txt = preg_replace('/\n+/', "\n", trim($_POST['inputtext']));
$text = explode("\n", $txt);
$output = array();
if(isset($_POST["submit"]) || isset($_POST["download"])) {
for($i=0;$i<count($text);$i++) {
$output[] .= trim($text[$i]) . ' AAAAA'.PHP_EOL;
}
}
if(isset($_POST["download"])) {
ob_clean();
$filename = "file-name-" .date('mdY-His'). '.txt';
$handle = fopen('php://output', "w");
fwrite($handle, implode($output));
fclose($handle);
header('Content-Description: File Transfer');
header("Content-type: application/force-download");
header("Content-Type: application/octet-stream charset=utf-8");
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
header('Pragma: public');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . strlen(implode($output)));
readfile($filename);
exit();
}
?>
<form method="POST" action="test.php">
<textarea name="inputtext" rows="10" cols="100" placeholder="Enter Any Text!" required><?php if(!empty($_POST["inputtext"])) { echo $_POST["inputtext"]; } ?></textarea>
<br><br>
<input type="submit" name="submit" value="Do it!">
<br><br>
<p>Output goes here. </p>
<textarea name="oputputtext" rows="10" cols="100" ><?php echo implode($output);?></textarea>
<input type="submit" name="download" value="Download Output">
</form>
'するerror_reporting(0);' didnのこと」あなたを助ける;キャッチして表示するように設定する必要があります –
あなたはこれをまだ投稿していませんか? http://stackoverflow.com/q/43941102/1415724と回答を受け取った –
[PHPダウンロードボタンが動作していない可能性があります空のファイルを生成]の複製(http://stackoverflow.com/questions/43941102/php-download-button- not-working-generate-empty-file) –