PHP重定向而不是建议下载

时间:2017-10-08 13:19:01

标签: php wordpress export-to-csv

我在创建一个wordpress网站上点击按钮时提出保存文件(csv)的问题。我已将代码简化为最低限度,但仍然无效。

我的模板页面代码:

<?php
/*
Template Name: My Awesome Custom Page
*/

get_header(); ?>
<html>
<form style= "text-align:center;" name="getcsv" action="test.php"      method="post">
 <select id="ddl">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select> <br/>
<input  name= "export_excel" type="submit" value="Extraire"/>
</form>
</html>
<?php get_footer();

test.php文件有:

<?php

if(isset($_POST["export_excel"]))
{
header( 'Content-type: application/xls' );
header( 'Content-Disposition: attachment; filename="test.xls"');
header( 'Expires: 0' );
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
header( 'Pragma: public' ); 
$headers = array('Type of Activity', "Number of Activities", "Hours of         Instruction");
$row_1 = array($_POST['ddl'], $_POST['ddl'], $_POST['ddl']);
$output = implode(',',$headers);
$output.= "\n";
$output.= implode(',',$row_1);
$output.= "\n"; 
}
?>

当我点击该按钮时,它会将我从http://localhost/test/pagedetest重定向到http://localhost/test/pagedetest/test.php,我当然会得到一个404,因为该页面从未创建过。

这只是一个测试案例,所以我可以在它上面构建一些更复杂的东西,但即使这样也行不通。

我尝试使用fputcsv函数代替只是简单回显到php://输出并使用ajax调用而不是表单但是没有给我任何东西(没有错误或任何东西)

如果有人知道为什么会发生这种情况,请提前感谢!

很抱歉,如果这是一个愚蠢的问题,但我的google-fu并没有找到任何东西,而且我还没有玩过wordpress或PHP很长时间......

干杯!

1 个答案:

答案 0 :(得分:0)

action="test.php"会将表单提交到当前目录中名为test.php的文件中。我猜你的test.php是http://localhost/test/test.phphttp://localhost/test.php。使用绝对路径(/test.php/test/test.php)作为您的操作,看看是否有帮助。