Dateiinhalt im POST-Request versenden

hury

Erfahrenes Mitglied
Hallo,

ich möchte den Inhalt einer Datei im Postrequest versenden.

Mein Code auf der Clientseite:
PHP:
$str = file_get_contents  (*pfadzurdatei*);
							
		$encodedGif = base64_encode($str);						
						
		$data = array ('gif_file' => $encodedGif );
		$data = http_build_query( $data );
		
	    $context_options = array (
               'http' => array (
               'method' => 'POST',
                  'header'=> "Content-type: application/x-www-form-urlencoded\r\n"
                     . "Content-Length: " . strlen($data) . "\r\n",
               'content' => $data
                   )
           );                          
       $context = stream_context_create($context_options);
       echo $res = file_get_contents('http://localhost/json/index.php?method=API_Pack.saveGif',  false,  $context );

Empfang auf der Serverseite:
PHP:
    // gif speichern
		$data = base64_decode(stripslashes($gif_file));		
		$im = imagecreatefromstring($data);
		imagegif($im, '/tmp/anim_gif_b.gif', 100);
		imagedestroy($im);

Das Problem ist, dass nur etwa 100kb der Datei gesendet werden, die Datei ist aber ca 400kb groß.

Was mache ich falsch?

Danke!
 
Hi,

eigentlich sieht das alles richtig aus, was du da machst, probier ggf. mal folgende Änderungen.

1. Lass den Content-Length Header weg, der wird automatisch gesetzt.
2. Änder mal die Zeile mitt http_build_query() so um: http_build_query($data, NULL, '&');
 
Zurück