Javascript和PHP将数据导出到文件中


Javascript and PHP export data to file

我有一个按钮。单击按钮,我想将网页上显示的一些数据导出到一个文件中进行下载。

我是这样做的:我有一个export.php。我将数据作为参数发送到PHP文件(另一个参数是filename),PHP服务器创建一个文件并写入数据,然后发送文件。代码类似于:

$filename = $_GET['filename'] . '.csv';
$export = $_GET['export'];
$writer = fopen($filename, 'w') or die('cannot create');
fwrite($writer, $export . "'n");
fclose($writer);
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename='.basename($filename));
readfile($filename);
unlink($filename);
exit();

对于数据较短的情况,它运行良好。但如果数据很长,由于数据是作为URL的一部分传递的,我会得到"请求URI太大"的错误。

有别的办法吗?是否可以使用JavaScript直接写入数据?

听起来像是用GET发送到export.php,而应该使用POST。GET被限制为2048个字符,而POST则不受限制。

您需要将数据POST到服务器。将FORM标记中的METHOD更改为POST(在html中,而不是在php代码中)。

每个浏览器都会限制查询字符串的大小/URL的长度,并且限制取决于浏览器。但是,您可以将大量数据POST到服务器。唯一的限制是用户的上行带宽有多快以及他们的耐心。

不要将数据作为查询字符串传递,而是使用javascript创建一个iframe并构建一个表单,然后将其发布到php文件。

如果你使用jquery,有一个很好的教程http://tutorialzine.com/2011/05/generating-files-javascript-php/