2

我通过 url 传递以下数据:

<?php    
   $url = "generate_pdf.php/?feed=" . urlencode(serialize($result));    
   echo '<div id="left-sidebar">';
   echo '<a href="' . $url . '"><div id="pdf">Download PDF</div></a>';
   echo '</div>';
?>

这里$result以数组的形式包含 rss 提要数据。我urlencode(serialize($result)用于通过 url 传递该数据,它在本地机器上完美运行,但在服务器上显示以下错误:

Request-URI Too Large
The requested URL's length exceeds the capacity limit for this server.

请告诉我您对处理这个问题的看法。

4

2 回答 2

2

我犯了这个错误(这不仅仅是不知道而不是犯了错误!)一次。我已经为 webapps 构建了一个 ajax 引擎。它仅使用 get 方法。一旦我有一个包含大量数据的表格,它就不起作用了。

经过一些研究,我发现了这一点:看这里

所以基本上大多数浏览器不会出现任何问题,因为它们支持大约 100.000 个字符。但是像 Apache 这样的大多数网络服务器只支持 URL 中的 4000 个字符。

不,你不能只配置 Apache 来接受更多。可以这样做,但您必须编辑源代码才能这样做。

解决方案:使用 POST 方法在 Web 服务器和客户端(很可能是浏览器)之间传输大量数据。

在您的情况下,我认为您想创建一个带有一些用户输入的 pdf,并且由于某种原因输入大于 4000 个字符。

于 2012-10-10T10:06:19.013 回答
1
  1. 将数据存储在服务器的某处(例如数据库)
  2. 为此类数据分配唯一 ID
  3. 在 URL 中传递该 ID
  4. 使用 ID 作为键从存储中检索数据
于 2012-10-10T09:52:20.457 回答