为什么没有fputcsv写入我的csv文件?

时间:2018-04-24 17:49:56

标签: php ajax csv

我一直在尝试使用PHP写入.csv文件,尽管由于某种原因文件仍然是空白而且没有添加任何数据。首先,我向addComment.php发送一个AJAX post请求,然后将POST数据附加到csv文件。 这是JS代码

submit.addEventListener("click", (e) => {
  e.preventDefault();

  var data = {
    body:commentBody.value,
    rating:rating.value.trim(),
    id:id,
    category:category.trim()
  };

  $.post("addComment.php", data, handleRes);
  //handleRes just logs the response data

  });

PHP文件现在应该获取$ _POST数据并附加到csv文件(当前为空) 这是PHP脚本

ob_start();
session_start();
$body = $_POST["body"];
$rating = $_POST["rating"];
$category = trim($_POST["category"]);
$name = $_SESSION["username"];
$id = $_POST["id"];

$filepath = "./data/comments/" . $category . ".csv");
$csvLine = array($name, $body, $rating);
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename='$filepath'");
$output = fopen("php://output", "w");
fputcsv($output, $csvLine, "|");
fclose($output);

1 个答案:

答案 0 :(得分:-1)

可能是因为您打开了输出缓冲,因此输出不会被定向到指定的输出缓冲区(在本例中为STDOUT),而是在输出缓冲区中收集。

我认为你可以在最后调用ob_end_flush()来将内容刷新到预期的输出。

相关问题