php下载保存文件

php下载保存文件,php,download,save,export,Php,Download,Save,Export,有时,这可以完美地工作并下载文件。 有时,它会在网页顶部显示整个文件内容,就像我使用了echo一样,然后是它下面的普通网页。 我不明白为什么它要把它打印到屏幕上 最近我在这个php文件中改变的唯一不寻常的事情就是在我的选择列表框中添加了一个OnUpdate事件 $filename = "members.csv"; if($_POST['SaveFileButton'] != ""){ header ("Content-Type: application/download"); heade

有时,这可以完美地工作并下载文件。 有时,它会在网页顶部显示整个文件内容,就像我使用了echo一样,然后是它下面的普通网页。 我不明白为什么它要把它打印到屏幕上

最近我在这个php文件中改变的唯一不寻常的事情就是在我的选择列表框中添加了一个OnUpdate事件

$filename = "members.csv";
if($_POST['SaveFileButton'] != ""){
  header ("Content-Type: application/download");
  header ("Content-Disposition: attachment; filename=$filename");
  header ("Content-Length: " . filesize("$filename"));
  $fp = fopen("$filename", "r");
  fpassthru($fp);}

函数列表框_update(){
var fullname=document.getElementById(“listboxid”).value;
var editcode=document.getElementById(“codeid”).value;
var filter=document.getElementById(“filterid”).value;
document.location.href=“/php/members.php?fullname=“+fullname+”&filter=“+filter+”&editcode=“+editcode;”

是否有
退出
,这样它会阻止脚本继续正常加载?我只是尝试了一下,但没有效果。由于退出,文件转储仍然会填满屏幕,正常网页的其余部分不会显示。我以前在剧本上没有这个问题。今天早上我添加的唯一不寻常的事情是一个java的东西,它在一个选择列表框上强加了一个OnChange事件。谢谢。在执行
header()
之前,您不能有任何输出。将上面的脚本移到底部,然后确保前面没有空格
我想如果我是你,我会以不同的方式构建整个页面,这很难理解。在我看来,你需要把它分成几个部分,每个部分都有自己的任务,然后包括你需要的元素。这样一来,你将省去很多困难。
<script type="text/javascript"> 
    function listbox_update(){
        var fullname = document.getElementById("listboxid").value;
        var editcode = document.getElementById("codeid").value;
        var filter = document.getElementById("filterid").value;
        document.location.href="/php/members.php?fullname="+fullname+"&filter="+filter+"&editcode="+editcode;}
</script>