Felix Riesterer: PHP-gesteuerter File-Upload als POST-Request... und dann 413

Beitrag lesen

Liebe Mitlesende,

heute scheitere ich an einem Datei-Upload, den ich aus einem PHP-Script heraus starten möchte. Das Ganze ist in Wirklichkeit "nur" ein POST-Request, der einen Parameter mit ca. 1,5MB posten soll.

Im Script verwende ich einen stream_context, bei dem ich folgende Parameter einsetze:

context params: Array
  (
    [options] => Array
    (
      [http] => Array
      (
        [method] => POST
        [timeout] => 20
        [header] => Array
        (
          [0] => Content-type: application/x-www-form-urlencoded
          [1] => Connection: close
          [2] => User-agent: geheim
          [3] => Content-Length: 1175075
        )
        [protocol_version] => 1.1
        [content] => db=VTJGc2RHVmtYMTlZS2JORmlxSVhLWEloWFFnVG ... (1.2MB)
      )
      [ssl] => Array
      (
        [SNI_enabled] => 1
        [SNI_server_name] => example.org
      )
    )
  )

Der Zielserver erlaubt POST-Daten bis zu 100MB Größe. Woher kommt dann mein 413er (Request Entity Too Large)? Auf meinem lokalen Testsystem erhalte ich keinen solchen Fehler! Im Fehler-Log steht (in etwa) das hier:

PHP Warning:  file_get_contents(https://example.org): failed to open stream: HTTP request failed! HTTP/1.1 413 Request Entity Too Large\r\n in /path/to/index.php on line 1951

Wer hat Ideen, die mir bei der Fehlersuche noch weiter helfen könnten?

Liebe Grüße,

Felix Riesterer.