Je suis nouveau ici. Je m'excuse si cela a déja été demandé mais je n'ai pas
trouvé avec google.
J'ai un script php (version 4.2.2) qui recoit une image encodée en paramètre:
<?
$Image= $_POST['Image'];
$n = "temp.64";
$img = urldecode($Image);
echo $img;
echo "\n";
echo "PHP 64 ENCODED IMAGE LENGHT:", strlen($img), "\n";
$fp = fopen("$n", "wb");
if ($fp) {
fwrite($fp, $img);
fclose($fp);
}
?>
Le problème est que le fichier encodé en base 64 n'est pas le même que celui
envoyé. En particulier, je vois que les caractères "+" ont disparus. La longueur
de la chaine est aussi diffrente.
Le fichier est envoyé par une applet java qui l'encode en base 64 puis en
x-www-form-urlencoded.
Le problème est que le fichier encodé en base 64 n'est pas le même que celui envoyé. En particulier, je vois que les caractères "+" ont disparus.
essaye rawurldecode (qui ne transforme pas les + en espace)
Cela ne marche pas non plus. En fait j'ai l'impression que le urldecode est inutile ici car le paramètre est deja décodé après la commande:
$Image= $_POST['Image'];
C'est apparement ce decodage qui ne fonctionne pas. Personne n'a jamais eu de problème avant ?
Merci Jean-Michel
Philippe Le Van
J.M wrote:
Le problème est que le fichier encodé en base 64 n'est pas le même que celui envoyé. En particulier, je vois que les caractères "+" ont disparus. [...]
Cela ne marche pas non plus. En fait j'ai l'impression que le urldecode est inutile ici car le paramètre est deja décodé après la commande:
$Image= $_POST['Image'];
C'est apparement ce decodage qui ne fonctionne pas. Personne n'a jamais eu de problème avant ?
C'est normal. Quand tu codes avec urlencode (ou rawurlencode), ça encode au format standard des url. Ensuite quand php reçoit la requète il décode ça automatiquement avant le mettre les valeurs dans $_POST.
Cordialement, Philippe
J.M wrote:
Le problème est que le fichier encodé en base 64 n'est pas le même
que celui envoyé. En particulier, je vois que les caractères "+" ont
disparus.
[...]
Cela ne marche pas non plus. En fait j'ai l'impression que le urldecode
est inutile ici car le paramètre est deja décodé après la commande:
$Image= $_POST['Image'];
C'est apparement ce decodage qui ne fonctionne pas. Personne n'a jamais
eu de problème avant ?
C'est normal. Quand tu codes avec urlencode (ou rawurlencode), ça
encode au format standard des url. Ensuite quand php reçoit la
requète il décode ça automatiquement avant le mettre les valeurs
dans $_POST.
Le problème est que le fichier encodé en base 64 n'est pas le même que celui envoyé. En particulier, je vois que les caractères "+" ont disparus. [...]
Cela ne marche pas non plus. En fait j'ai l'impression que le urldecode est inutile ici car le paramètre est deja décodé après la commande:
$Image= $_POST['Image'];
C'est apparement ce decodage qui ne fonctionne pas. Personne n'a jamais eu de problème avant ?
C'est normal. Quand tu codes avec urlencode (ou rawurlencode), ça encode au format standard des url. Ensuite quand php reçoit la requète il décode ça automatiquement avant le mettre les valeurs dans $_POST.
Cordialement, Philippe
J.M
Philippe Le Van wrote:
J.M wrote:
Le problème est que le fichier encodé en base 64 n'est pas le même que celui envoyé. En particulier, je vois que les caractères "+" ont disparus.
[...]
Cela ne marche pas non plus. En fait j'ai l'impression que le urldecode est inutile ici car le paramètre est deja décodé après la commande:
$Image= $_POST['Image'];
C'est apparement ce decodage qui ne fonctionne pas. Personne n'a jamais eu de problème avant ?
C'est normal. Quand tu codes avec urlencode (ou rawurlencode), ça encode au format standard des url. Ensuite quand php reçoit la requète il décode ça automatiquement avant le mettre les valeurs dans $_POST.
Oui mais c'est le decodage qui n'a pas l'air bon. J'ai du mal expliquer mon problème. J'ai donc une applet java qui envoie une image Gif a une url qui est un script PHP. L'applet encode d'abord l'image en base 64 puis en x-www-form-urlencoded. Ensuite, elle l'envoie au script PHP qui n'a theoriquement plus qu'a decoder le base 64 pour l'écrire dans un fichier. Le problème, c'est que la valeur de Image apres la commande $Image= $_POST['Image']; n'est pas bonne. Certains caractères ont sautés ou été remplacés. Je voulais savoir si il y avait des problèmes à ce niveau. Merci, Jean-Michel
Philippe Le Van wrote:
J.M wrote:
Le problème est que le fichier encodé en base 64 n'est pas le même
que celui envoyé. En particulier, je vois que les caractères "+" ont
disparus.
[...]
Cela ne marche pas non plus. En fait j'ai l'impression que le
urldecode est inutile ici car le paramètre est deja décodé après la
commande:
$Image= $_POST['Image'];
C'est apparement ce decodage qui ne fonctionne pas. Personne n'a
jamais eu de problème avant ?
C'est normal. Quand tu codes avec urlencode (ou rawurlencode), ça
encode au format standard des url. Ensuite quand php reçoit la
requète il décode ça automatiquement avant le mettre les valeurs
dans $_POST.
Oui mais c'est le decodage qui n'a pas l'air bon. J'ai du mal expliquer mon
problème. J'ai donc une applet java qui envoie une image Gif a une url qui est
un script PHP.
L'applet encode d'abord l'image en base 64 puis en x-www-form-urlencoded.
Ensuite, elle l'envoie au script PHP qui n'a theoriquement plus qu'a decoder le
base 64 pour l'écrire dans un fichier. Le problème, c'est que la valeur de Image
apres la commande $Image= $_POST['Image']; n'est pas bonne. Certains caractères
ont sautés ou été remplacés. Je voulais savoir si il y avait des problèmes à ce
niveau.
Merci,
Jean-Michel
Le problème est que le fichier encodé en base 64 n'est pas le même que celui envoyé. En particulier, je vois que les caractères "+" ont disparus.
[...]
Cela ne marche pas non plus. En fait j'ai l'impression que le urldecode est inutile ici car le paramètre est deja décodé après la commande:
$Image= $_POST['Image'];
C'est apparement ce decodage qui ne fonctionne pas. Personne n'a jamais eu de problème avant ?
C'est normal. Quand tu codes avec urlencode (ou rawurlencode), ça encode au format standard des url. Ensuite quand php reçoit la requète il décode ça automatiquement avant le mettre les valeurs dans $_POST.
Oui mais c'est le decodage qui n'a pas l'air bon. J'ai du mal expliquer mon problème. J'ai donc une applet java qui envoie une image Gif a une url qui est un script PHP. L'applet encode d'abord l'image en base 64 puis en x-www-form-urlencoded. Ensuite, elle l'envoie au script PHP qui n'a theoriquement plus qu'a decoder le base 64 pour l'écrire dans un fichier. Le problème, c'est que la valeur de Image apres la commande $Image= $_POST['Image']; n'est pas bonne. Certains caractères ont sautés ou été remplacés. Je voulais savoir si il y avait des problèmes à ce niveau. Merci, Jean-Michel