我试图从表中获取数据,使用PHP将它们写入文件并强制下载,但每当我下载文件时,它总是有页面代码加上我想要的文件。
你能看到我的PHP代码有什么问题
<?php
if (empty($_POST['file'])) {
echo "<div>";
echo "<h1 align='center'>ERROR:</h1>";
echo "<p align='center'>Something is missing, please go back and check your error!</p>";
echo "<div class='error' width='50%' height='50%' align='center'><img src='./images/error.png'/></div>";
echo "</div>";
}
else {
$filename=$_POST['file'];
$start1=$_POST['line1_start'];
$stop1=$_POST['line1_stop'];
$segment1=$_POST['line1_segment'];
$start2=$_POST['line2_start'];
$stop2=$_POST['line2_stop'];
$segment2=$_POST['line2_segment'];
$start3=$_POST['line3_start'];
$stop3=$_POST['line3_stop'];
$segment3=$_POST['line3_segment'];
$start4=$_POST['line4_start'];
$stop4=$_POST['line4_stop'];
$segment4=$_POST['line4_segment'];
$start5=$_POST['line5_start'];
$stop5=$_POST['line5_stop'];
$segment5=$_POST['line5_segment'];
$start6=$_POST['line6_start'];
$stop6=$_POST['line6_stop'];
$segment6=$_POST['line6_segment'];
$start7=$_POST['line7_start'];
$stop7=$_POST['line7_stop'];
$segment7=$_POST['line7_segment'];
$start8=$_POST['line8_start'];
$stop8=$_POST['line8_stop'];
$segment8=$_POST['line8_segment'];
$start9=$_POST['line9_start'];
$stop9=$_POST['line9_stop'];
$segment9=$_POST['line9_segment'];
$start10=$_POST['line10_start'];
$stop10=$_POST['line10_stop'];
$segment10=$_POST['line10_segment'];
$start11=$_POST['line11_start'];
$stop11=$_POST['line11_stop'];
$segment11=$_POST['line11_segment'];
$start12=$_POST['line12_start'];
$stop12=$_POST['line12_stop'];
$segment12=$_POST['line12_segment'];
$start13=$_POST['line13_start'];
$stop13=$_POST['line13_stop'];
$segment13=$_POST['line13_segment'];
$start14=$_POST['line14_start'];
$stop14=$_POST['line14_stop'];
$segment14=$_POST['line14_segment'];
$start15=$_POST['line15_start'];
$stop15=$_POST['line15_stop'];
$segment15=$_POST['line15_segment'];
$start16=$_POST['line16_start'];
$stop16=$_POST['line16_stop'];
$segment16=$_POST['line16_segment'];
$start17=$_POST['line17_start'];
$stop17=$_POST['line17_stop'];
$segment17=$_POST['line17_segment'];
$start18=$_POST['line18_start'];
$stop18=$_POST['line18_stop'];
$segment18=$_POST['line18_segment'];
$start19=$_POST['line19_start'];
$stop19=$_POST['line19_stop'];
$segment19=$_POST['line19_segment'];
$start20=$_POST['line20_start'];
$stop20=$_POST['line20_stop'];
$segment20=$_POST['line20_segment'];
$ofile=fopen($filename,'w');
fwrite($ofile,"1".PHP_EOL);
fwrite($ofile,$start1);
fwrite($ofile, " --> ");
fwrite($ofile,$stop1.PHP_EOL);
fwrite($ofile,$segment1.PHP_EOL.PHP_EOL);
fwrite($ofile,"2".PHP_EOL);
fwrite($ofile,$start2);
fwrite($ofile, " --> ");
fwrite($ofile,$stop2.PHP_EOL);
fwrite($ofile,$segment2.PHP_EOL.PHP_EOL);
fwrite($ofile,"3".PHP_EOL);
fwrite($ofile,$start3);
fwrite($ofile, " --> ");
fwrite($ofile,$stop3.PHP_EOL);
fwrite($ofile,$segment3.PHP_EOL.PHP_EOL);
fwrite($ofile,"4".PHP_EOL);
fwrite($ofile,$start4);
fwrite($ofile, " --> ");
fwrite($ofile,$stop4.PHP_EOL);
fwrite($ofile,$segment4.PHP_EOL.PHP_EOL);
fwrite($ofile,"5".PHP_EOL);
fwrite($ofile,$start5);
fwrite($ofile, " --> ");
fwrite($ofile,$stop5.PHP_EOL);
fwrite($ofile,$segment5.PHP_EOL.PHP_EOL);
fwrite($ofile,"6".PHP_EOL);
fwrite($ofile,$start6);
fwrite($ofile, " --> ");
fwrite($ofile,$stop6.PHP_EOL);
fwrite($ofile,$segment6.PHP_EOL.PHP_EOL);
fwrite($ofile,"7".PHP_EOL);
fwrite($ofile,$start7);
fwrite($ofile, " --> ");
fwrite($ofile,$stop7.PHP_EOL);
fwrite($ofile,$segment7.PHP_EOL.PHP_EOL);
fwrite($ofile,"8".PHP_EOL);
fwrite($ofile,$start8);
fwrite($ofile, " --> ");
fwrite($ofile,$stop8.PHP_EOL);
fwrite($ofile,$segment8.PHP_EOL.PHP_EOL);
fwrite($ofile,"9".PHP_EOL);
fwrite($ofile,$start9);
fwrite($ofile, " --> ");
fwrite($ofile,$stop9.PHP_EOL);
fwrite($ofile,$$segment9.PHP_EOL.PHP_EOL);
fwrite($ofile,"10".PHP_EOL);
fwrite($ofile,$start10);
fwrite($ofile, " --> ");
fwrite($ofile,$stop10.PHP_EOL);
fwrite($ofile,$segment10.PHP_EOL.PHP_EOL);
fwrite($ofile,"11".PHP_EOL);
fwrite($ofile,$start11);
fwrite($ofile, " --> ");
fwrite($ofile,$stop11.PHP_EOL);
fwrite($ofile,$segment11.PHP_EOL.PHP_EOL);
fwrite($ofile,"12".PHP_EOL);
fwrite($ofile,$start12);
fwrite($ofile, " --> ");
fwrite($ofile,$stop12.PHP_EOL);
fwrite($ofile,$segment12.PHP_EOL.PHP_EOL);
fwrite($ofile,"13".PHP_EOL);
fwrite($ofile,$start13);
fwrite($ofile, " --> ");
fwrite($ofile,$stop13.PHP_EOL);
fwrite($ofile,$segment13.PHP_EOL.PHP_EOL);
fwrite($ofile,"14".PHP_EOL);
fwrite($ofile,$start14);
fwrite($ofile, " --> ");
fwrite($ofile,$stop14.PHP_EOL);
fwrite($ofile,$segment14.PHP_EOL.PHP_EOL);
fwrite($ofile,"15".PHP_EOL);
fwrite($ofile,$start15);
fwrite($ofile, " --> ");
fwrite($ofile,$stop15.PHP_EOL);
fwrite($ofile,$segment15.PHP_EOL.PHP_EOL);
fwrite($ofile,"16".PHP_EOL);
fwrite($ofile,$start16);
fwrite($ofile, " --> ");
fwrite($ofile,$stop16.PHP_EOL);
fwrite($ofile,$segment16.PHP_EOL.PHP_EOL);
fwrite($ofile,"17".PHP_EOL);
fwrite($ofile,$start17);
fwrite($ofile, " --> ");
fwrite($ofile,$stop17.PHP_EOL);
fwrite($ofile,$segment17.PHP_EOL.PHP_EOL);
fwrite($ofile,"18".PHP_EOL);
fwrite($ofile,$start18);
fwrite($ofile, " --> ");
fwrite($ofile,$stop18.PHP_EOL);
fwrite($ofile,$segment18.PHP_EOL.PHP_EOL);
fwrite($ofile,"19".PHP_EOL);
fwrite($ofile,$start19);
fwrite($ofile, " --> ");
fwrite($ofile,$stop19.PHP_EOL);
fwrite($ofile,$segment19.PHP_EOL.PHP_EOL);
fwrite($ofile,"20".PHP_EOL);
fwrite($ofile,$start20);
fwrite($ofile, " --> ");
fwrite($ofile,$start20.PHP_EOL);
fwrite($ofile,$segment20.PHP_EOL.PHP_EOL);
fclose($ofile);
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$filename").";");
header('Content-Disposition: attachment; filename=" '.basename($filename).'"');
header("Content-Type: text/plain; ");
header("Content-Transfer-Encoding: binary");
echo "<h1 align='center'> SUCCESS :</h1>";
echo "<p align='center'> The transcription has been successfully made, you can download you file by clicking on the";
echo "button below.</p>";
echo "<p align='center'> Right-click on the button below, click on 'Save link as' </p>";
echo "<center>";
echo "<div class='success' width='50%' height='40%' align='center'><img src='./images/success.png'/></div>";
readfile($filename);
}
?>
感谢您的帮助
答案 0 :(得分:3)
您在输出文件之前专门输出HTML:
echo "<h1 align='center'> SUCCESS :</h1>";
echo "<p align='center'> The transcription has been successfully made, you can download you file by clicking on the";
echo "button below.</p>";
echo "<p align='center'> Right-click on the button below, click on 'Save link as' </p>";
echo "<center>";
echo "<div class='success' width='50%' height='40%' align='center'><img src='./images/success.png'/></div>";
如果您不希望将其包含在下载中,请将其删除。
您无法同时下载文件并在页面上显示信息。只需点击一下即可在浏览器中下载一个“内容”: 网页< em>或保存到磁盘的文件。
如果您想要显示“成功”并同时下载文件,一种常见的技巧是在页面上输出“成功”,然后将访问者重定向到下载URL,以便立即开始下载。 (通常这种页面附带“你的下载应该立即开始......”的消息,大家都不喜欢。)