POST données encodées en Base64 en PHP
J'ai besoin de mettre des données à une page PHP à l'aide de cURL, et que la requête contient trois paramètres:
- Deux d'entre eux sont régulières, les valeurs de texte
- Est un fichier encodé en Base64
J'ai remarqué que le Base64 valeur est endommagé au cours de la transmission.
C'est le code que l'envoi de la demande:
$filename = "img2.jpg"; //A sample image file
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));
$base64 = base64_encode($data);
$postData = "id=1234&sometext=asdasd&data=" . $base64;
$ch = curl_init("http://mydomain/post.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$httpResponse = curl_exec($ch);
curl_close($ch);
Des conseils?
OriginalL'auteur Mark | 2010-11-17
Vous devez vous connecter pour publier un commentaire.
Peut-être que vous devriez utiliser la fonction urlencode() parce que le
+
et=
dans une chaîne base64?OriginalL'auteur MatTheCat
Assurez-vous que la taille du message de données ne dépasse pas votre "max_post_size' dans votre php.fichier ini.
OriginalL'auteur castis
Une juste estimation, c'est que l'encodage ajoute + - signes, qui gâchis de vos données.
Après encoder, essayez d'ajouter de remplacer le + à
(Et en arrière, recevez bien sûr.)
Réf.:
http://en.wikipedia.org/wiki/Base64#URL_applications
OriginalL'auteur Teson