1

我想要做的是提供一种下载在js客户端生成的Xls文件的方法。所以我在js中的字符串中有xls,需要给用户一种下载它并在excel中打开它的方法。

据我了解,这样做的唯一方法是通过内容类型在服务器上执行此操作,因此我尝试提供一个执行文件中继的 php ... 这是 php

<?php
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"my-data.csv\"");
$data=stripcslashes($_REQUEST['csv_text']);
echo $data; 
?>

一个请求最终可能会相当长,所以例如我可能有这个请求......(实际上大大缩短了)。

我不擅长 php,任何人都可以建议一个更好的方法来修改这个中继脚本(或完全更好的方法)来完成这个?

http://myserver.com/ExcelRelay.php?csv_text=Id%09City%09Phone%09Address%201%09Address%202%09State%09Type%09Employees%09Revenue%09Leed%09Established%09Comments%09Country%09Postal%20Code%09Territory% 0A3%09格林斯伯勒%096538227668%09%0978%20洛基%20秒%20圣%09新%20泽西%09远程%09%090%091%09太阳%20八月%2009%201964%2000%3A00%3A00%20GMT-0400%20%28 %20Daylight%20Time%29%09%22Et%20quad%20estis%20vobis%20homo%2C%20si%20nomen%20transit.%20%0A%20Sed%20quad%20estis%20vobis%20homo%2C%20si%20quad%20ut% 20novum%20vobis

感谢您的回复,最终脚本是

<?php header("Content-type: application/octet-stream"); 
     header("Content-Disposition: attachment;filename=\"".$_POST['filename']."\"");    
     echo $_POST['data']; 
 ?>
4

1 回答 1

3

一个词:POST

Request Url Too Long是客户端错误,并且是(AFAIK)IE 独有的错误,这些天。如果您想将数据发送到服务器并将其作为文件发送回您,则必须在请求正文中发送数据。

请参阅此处了解更多信息。

于 2012-05-17T21:02:41.153 回答