【问题标题】:cant get values printed in to a file无法将值打印到文件中
【发布时间】:2012-07-09 02:54:08
【问题描述】:

我正在尝试将存储在变量 fieldCSV 中的值传递给文件 data.csv...我使用 javascript 和 php 来执行此操作。当将值存储到变量 fieldCSV、bt 中时,我触发了 ajax 请求这不起作用,因为下载的文件会在其中打印 php 错误而不是 csv ..

$.ajax({
    type: "POST",
    url: "/test/fileDownload.php",
    data: {
        name: fieldCSV},
});





<?php
$name = $_POST["name"];
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
fputcsv($output, $name);
?>

我做错了什么?

【问题讨论】:

  • 文件被下载,内部打印错误为“未定义的索引和文件路径”

标签: php javascript jquery csv


【解决方案1】:

在使用$ _POST['name'] 之前,请先执行if (isset($_POST['name'])) { ... }。您可以确保发布数据正在通过。作为临时测试,将$_POST更改为$_GET,直接访问页面http://..../test/fileDownload.php?name={csv-text},看看文件中是否出现同样的错误。

【讨论】:

  • 更改为 GET 后,它会打印 {csv-text},
【解决方案2】:

似乎您正在传递绝对路径。只是确定一下,你是故意放这个的吗?

url: "/test/fileDownload.php";

【讨论】:

  • 我听不懂.. 绝对路径?
  • 例如,将其作为相对路径传递将是: url: "test/fileDownload.php";