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%09Greensboro%096538227668%09%0978%20Rocky%20Second%20St。%09New%20Jersey%09Remote%09%090%091%09Sun%20Aug%2009%201964%2000%3A00%3A00%20GMT-0400%20%28Eastern %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これはクライアント側のエラーであり、最近ではIE専用の(AFAIK)エラーです。データをサーバーに送信し、ファイルとして返送する場合は、リクエストの本文でデータを送信する必要があります。

詳細については、こちらをご覧ください。

于 2012-05-17T21:02:41.153 に答える