【发布时间】:2012-08-09 14:44:31
【问题描述】:
我有一个带有表格的网站,想在每个 tr 前面添加一个按钮。单击该按钮应弹出下载对话框(保存文件),然后按“保存”,下载文件。
我经常看到这种情况,但仍然不知道该怎么做。我已经通过表单设置了按钮:
<form method="get">
<input type="submit" value="<?php echo $paket; ?>" name="download" />
</form>
其中$paket包含没有.zip结尾的文件名。
在同一个 php 文件中,就在两个 require_once 语句下面,我这样做了:
if ( isset( $_GET['download'] ) ) {
$name = $_GET['download'];
header( 'Content-Disposition: attachment; filename = '.$name.'.zip' );
header( 'Content-type: application/zip' );
}
如果我按下按钮,我会收到以下错误:
Warning: Cannot modify header information - headers already sent by (output started at /is/lib/require.req:154)
我知道标题信息需要放在最顶部,但是如果require_once 紧随其后几行,我应该如何使用我包含在require_once 中的函数?
有没有我找不到的不错(且万无一失)的教程?
【问题讨论】:
-
您的输出在您的
header(...)行之前开始。有空格或其他类型的输出。你不能那样做。 -
您可能还想用谷歌搜索“警告:无法修改标题信息”。奇怪的是,它出现了数量惊人的相关匹配项。
-
Headers already sent by PHP 的可能重复项
-
你试过输出缓冲吗??
标签: php http-headers