2

我正在尝试将我的 DHTMLX 网格导出到 CSV 文件。我已经设置了它的框架,但是我遇到了一个问题,如果我尝试导出超过 ~25 行,它就会失败。没有错误信息或任何东西。下面是我的代码:

Javascript

myGrid.csvParser = myGrid.csvExtParser;
myGrid.setCSVDelimiter('|');
myGrid.csv.row = "endOfRow";

var gridCsvData = myGrid.serializeToCSV();

$.post("data/export.php?csvdata="+gridCsvData);

PHP

$csvData = $_REQUEST['csvdata'];

$csv = explode('endOfRow',$csvData);

$myfile = "grid.csv";

$fh = fopen($myfile, 'w') or die("can't open file");

foreach($csv as $line) {
   fputcsv($fh, explode('|',$line),',','"');
}

fclose($fh);


//Redirect output to a client's web browser (csv)
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=grid.csv");
header("Pragma: no-cache");
header("Expires: 0");

readfile('grid.csv');

任何帮助表示赞赏。我认为这是 POST 上的某种大小限制问题,我尝试将 .htaccess 文件中的限制修改为 20MB。正如我所说,这仅适用于几行(<25),但是一旦我尝试导出更多内容,它就永远不会生成 .csv 文件。

4

1 回答 1

2

我猜$.post(来自 jQuery 对吗?)不能处理这么大的 url。您应该添加一个可以作为 HTTP POST 查询参数处理的参数:

$.post(
  "data/export.php", 
  { 
    csvdata: gridCsvData
  }
);
于 2012-08-23T14:58:00.377 回答