Request-URI在服务器上显示太大

时间:2012-10-10 09:43:22

标签: php

我通过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>';
?>

此处包含rss的$result以数组的形式提供数据。我正在使用urlencode(serialize($result)通过url传递数据,并且它在本地计算机上完美运行但在服务器中显示以下错误:

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

请告诉我你处理这个问题的意见。

2 个答案:

答案 0 :(得分:2)

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

经过一番研究后我发现了这一点:look here

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

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

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

在你的情况下,我认为你想创建一个带有一些用户输入的pdf,原因是输入大于4000个字符。

答案 1 :(得分:1)

  1. 将数据存储在服务器上的某个位置(例如数据库)
  2. 为此类数据指定唯一ID
  3. 在网址
  4. 中传递该ID
  5. 使用ID作为密钥从存储中检索数据