Depuis une Applet, Je désire sauver une image java dans un fichier gif
sur le serveur.
En cherchant dans les archives, j'ai vu que je n'etais pas le premier a
vouloir le faire mais malheureusement, je n'ai pas trouvé d'exemple qui
fonctionne.
J'au un code qui marche presque mais le problème est que le fichier GIF
est tronqué des qu'une valeur 0 est rencontré dans le stream.
Voici le code java et le php qui ecrit l'image. Si quelqu'un a une
solution, je le remercie.
Merci,
Jean-Michel
try {
URL url = new URL(URLSave);
URLConnection uConn = url.openConnection();
uConn.setUseCaches(false);
uConn.setDoInput(true);
uConn.setDoOutput(true);
uConn.setRequestProperty("Content-transfer-encoding","binary");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream out = new
DataOutputStream(uConn.getOutputStream());
// Nom du fichier a sauver
String codedName = "name=" + URLEncoder.encode(file) + "&image=";
// Creation du gif a partie d'une image
GifEncoder encoder = new GifEncoder(panel.getOffscreen(), bos);
encoder.encode();
// Ecriture des parametres
out.writeBytes(codedName);
bos.writeTo(out);
out.flush();
out.close();
// Lecture reponse du serveur
DataInputStream is1 = new
DataInputStream(uConn.getInputStream());
String istr;
while ((istr = is1.readLine()) != null) {
System.out.println(istr);
}
is1.close();
} catch (Throwable ex) { System.err.println("Utils.read()
Exception:" + ex); }
Le PHP:
<?
$file = sprintf("/home/jmr/simbad/%s", $name);
$fp = fopen("$name", "wb");
if ($fp) {
fwrite($fp, $image);
fclose($fp);
echo "\nSAUVEGARDE DU GRAPHE GIF EFFECTUEE";
} else {
echo "ERREUR:IMPOSSIBLE DE SAUVEGARDER LE GRAPHE";
}
?>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Emmanuel Puybaret
Bonjour,
Depuis une Applet, Je désire sauver une image java dans un fichier gif sur le serveur. En cherchant dans les archives, j'ai vu que je n'etais pas le premier a vouloir le faire mais malheureusement, je n'ai pas trouvé d'exemple qui fonctionne.
D'expérience, des élèves que j'ai aidés en juillet dernier ont réalisé ça avec la méthode POST en utilisant un paramètre dont la valeur vaut l'image GIF encodée en Base64 puis recodée en x-www-form-urlencoded. Ca grossit la taille des données mais ça marchait impec... De mémoire, avec un encoder Base64 du domaine public comme celui dispo à http://iharder.sourceforge.net/base64/ , ça donnait un truc du genre :
try { // Création de l'image GIF ByteArrayOutputStream bos = new ByteArrayOutputStream(); GifEncoder encoder = new GifEncoder(panel.getOffscreen(), bos); encoder.encode(); byte [] imageBytes = bos.toByteArray (); // Encodage de l'image au format Base64 String imageBase64 = Base64.encodeBytes (imageBytes); // Encodage de l'image Base64 au x-www-form-urlencoded String image = URLEncoder.encode (imageBase64);
Ton problème avec cette solution c'est de trouver un décodeur Base64 en PHP pour le serveur mais ça doit bien exister quelque part...
L'autre solution est de simuler depuis l'applet un formulaire HTML utilisant l'encoding enctype="multipart/form-data" (qui permet d'uploader un fichier sur un serveur). A toi de voir... http://www.google.com/search?q=multipart/form-data+applet
Bonne chance et tiens nous au courant....
Bye -- Emmanuel PUYBARET Email : Web : http://www.eteks.com Auteur du Cahier du programmeur Java [1] / Editions Eyrolles : http://www.eteks.com/services/cahierjava1.html
Bonjour,
Depuis une Applet, Je désire sauver une image java dans un fichier gif
sur le serveur.
En cherchant dans les archives, j'ai vu que je n'etais pas le premier a
vouloir le faire mais malheureusement, je n'ai pas trouvé d'exemple qui
fonctionne.
D'expérience, des élèves que j'ai aidés en juillet dernier ont réalisé ça
avec la méthode POST en utilisant un paramètre dont la valeur vaut l'image
GIF encodée en Base64 puis recodée en x-www-form-urlencoded. Ca grossit la
taille des données mais ça marchait impec...
De mémoire, avec un encoder Base64 du domaine public comme celui dispo à
http://iharder.sourceforge.net/base64/ , ça donnait un truc du genre :
try
{
// Création de l'image GIF
ByteArrayOutputStream bos = new ByteArrayOutputStream();
GifEncoder encoder = new GifEncoder(panel.getOffscreen(), bos);
encoder.encode();
byte [] imageBytes = bos.toByteArray ();
// Encodage de l'image au format Base64
String imageBase64 = Base64.encodeBytes (imageBytes);
// Encodage de l'image Base64 au x-www-form-urlencoded
String image = URLEncoder.encode (imageBase64);
Ton problème avec cette solution c'est de trouver un décodeur Base64 en PHP
pour le serveur mais ça doit bien exister quelque part...
L'autre solution est de simuler depuis l'applet un formulaire HTML utilisant
l'encoding enctype="multipart/form-data" (qui permet d'uploader un fichier
sur un serveur). A toi de voir...
http://www.google.com/search?q=multipart/form-data+applet
Bonne chance et tiens nous au courant....
Bye
--
Emmanuel PUYBARET
Email : puybaret@eteks.com
Web : http://www.eteks.com
Auteur du Cahier du programmeur Java [1] / Editions Eyrolles :
http://www.eteks.com/services/cahierjava1.html
Depuis une Applet, Je désire sauver une image java dans un fichier gif sur le serveur. En cherchant dans les archives, j'ai vu que je n'etais pas le premier a vouloir le faire mais malheureusement, je n'ai pas trouvé d'exemple qui fonctionne.
D'expérience, des élèves que j'ai aidés en juillet dernier ont réalisé ça avec la méthode POST en utilisant un paramètre dont la valeur vaut l'image GIF encodée en Base64 puis recodée en x-www-form-urlencoded. Ca grossit la taille des données mais ça marchait impec... De mémoire, avec un encoder Base64 du domaine public comme celui dispo à http://iharder.sourceforge.net/base64/ , ça donnait un truc du genre :
try { // Création de l'image GIF ByteArrayOutputStream bos = new ByteArrayOutputStream(); GifEncoder encoder = new GifEncoder(panel.getOffscreen(), bos); encoder.encode(); byte [] imageBytes = bos.toByteArray (); // Encodage de l'image au format Base64 String imageBase64 = Base64.encodeBytes (imageBytes); // Encodage de l'image Base64 au x-www-form-urlencoded String image = URLEncoder.encode (imageBase64);
Ton problème avec cette solution c'est de trouver un décodeur Base64 en PHP pour le serveur mais ça doit bien exister quelque part...
L'autre solution est de simuler depuis l'applet un formulaire HTML utilisant l'encoding enctype="multipart/form-data" (qui permet d'uploader un fichier sur un serveur). A toi de voir... http://www.google.com/search?q=multipart/form-data+applet
Bonne chance et tiens nous au courant....
Bye -- Emmanuel PUYBARET Email : Web : http://www.eteks.com Auteur du Cahier du programmeur Java [1] / Editions Eyrolles : http://www.eteks.com/services/cahierjava1.html
J.M
Emmanuel Puybaret wrote:
Bonjour,
Depuis une Applet, Je désire sauver une image java dans un fichier gif sur le serveur. En cherchant dans les archives, j'ai vu que je n'etais pas le premier a vouloir le faire mais malheureusement, je n'ai pas trouvé d'exemple qui fonctionne.
D'expérience, des élèves que j'ai aidés en juillet dernier ont réalisé ça avec la méthode POST en utilisant un paramètre dont la valeur vaut l'image GIF encodée en Base64 puis recodée en x-www-form-urlencoded. Ca grossit la taille des données mais ça marchait impec... De mémoire, avec un encoder Base64 du domaine public comme celui dispo à http://iharder.sourceforge.net/base64/ , ça donnait un truc du genre :
Bonjour Emmanuel,
Ca marche !. En php, il y a la fonction base64_decode qui va bien. J'avais déja pensé à encoder l'image mais je me demandais s'il n'y avait pas plus simple. En tout cas, merci beaucoup pour la solution. Ca me va parfaitement.
Jean-Michel
Emmanuel Puybaret wrote:
Bonjour,
Depuis une Applet, Je désire sauver une image java dans un fichier gif
sur le serveur.
En cherchant dans les archives, j'ai vu que je n'etais pas le premier a
vouloir le faire mais malheureusement, je n'ai pas trouvé d'exemple qui
fonctionne.
D'expérience, des élèves que j'ai aidés en juillet dernier ont réalisé ça
avec la méthode POST en utilisant un paramètre dont la valeur vaut l'image
GIF encodée en Base64 puis recodée en x-www-form-urlencoded. Ca grossit la
taille des données mais ça marchait impec...
De mémoire, avec un encoder Base64 du domaine public comme celui dispo à
http://iharder.sourceforge.net/base64/ , ça donnait un truc du genre :
Bonjour Emmanuel,
Ca marche !. En php, il y a la fonction base64_decode qui va bien.
J'avais déja pensé à encoder l'image mais je me demandais s'il n'y avait
pas plus simple.
En tout cas, merci beaucoup pour la solution. Ca me va parfaitement.
Depuis une Applet, Je désire sauver une image java dans un fichier gif sur le serveur. En cherchant dans les archives, j'ai vu que je n'etais pas le premier a vouloir le faire mais malheureusement, je n'ai pas trouvé d'exemple qui fonctionne.
D'expérience, des élèves que j'ai aidés en juillet dernier ont réalisé ça avec la méthode POST en utilisant un paramètre dont la valeur vaut l'image GIF encodée en Base64 puis recodée en x-www-form-urlencoded. Ca grossit la taille des données mais ça marchait impec... De mémoire, avec un encoder Base64 du domaine public comme celui dispo à http://iharder.sourceforge.net/base64/ , ça donnait un truc du genre :
Bonjour Emmanuel,
Ca marche !. En php, il y a la fonction base64_decode qui va bien. J'avais déja pensé à encoder l'image mais je me demandais s'il n'y avait pas plus simple. En tout cas, merci beaucoup pour la solution. Ca me va parfaitement.
Jean-Michel
Ulrich Vachon
mouais...
C'est pas très "Java" comme soluce. Si tu as des contraintes serveurs qui imposent du PHP uniquement, je peux comprendre, mais dans le cas contraire, il aurait été plus convenable de bosser avec ou des servlets ou RMI, ou une Applet certifiée.
Mais bon, si ca tourne tant mieux et bon code. Ulrich Vachon
"J.M" a écrit dans le message de news: blgkcq$noo$
Emmanuel Puybaret wrote:
Bonjour,
Depuis une Applet, Je désire sauver une image java dans un fichier gif sur le serveur. En cherchant dans les archives, j'ai vu que je n'etais pas le premier a vouloir le faire mais malheureusement, je n'ai pas trouvé d'exemple qui fonctionne.
D'expérience, des élèves que j'ai aidés en juillet dernier ont réalisé ça
avec la méthode POST en utilisant un paramètre dont la valeur vaut l'image
GIF encodée en Base64 puis recodée en x-www-form-urlencoded. Ca grossit la
taille des données mais ça marchait impec... De mémoire, avec un encoder Base64 du domaine public comme celui dispo à http://iharder.sourceforge.net/base64/ , ça donnait un truc du genre :
Bonjour Emmanuel,
Ca marche !. En php, il y a la fonction base64_decode qui va bien. J'avais déja pensé à encoder l'image mais je me demandais s'il n'y avait pas plus simple. En tout cas, merci beaucoup pour la solution. Ca me va parfaitement.
Jean-Michel
mouais...
C'est pas très "Java" comme soluce. Si tu as des contraintes serveurs qui
imposent du PHP uniquement, je peux comprendre, mais dans le cas contraire,
il aurait été plus convenable de bosser avec ou des servlets ou RMI, ou une
Applet certifiée.
Mais bon, si ca tourne tant mieux et bon code.
Ulrich Vachon
"J.M" <jmrINVALID@anvil.co.uk> a écrit dans le message de news:
blgkcq$noo$1@biggoron.nerim.net...
Emmanuel Puybaret wrote:
Bonjour,
Depuis une Applet, Je désire sauver une image java dans un fichier gif
sur le serveur.
En cherchant dans les archives, j'ai vu que je n'etais pas le premier a
vouloir le faire mais malheureusement, je n'ai pas trouvé d'exemple qui
fonctionne.
D'expérience, des élèves que j'ai aidés en juillet dernier ont réalisé
ça
avec la méthode POST en utilisant un paramètre dont la valeur vaut
l'image
GIF encodée en Base64 puis recodée en x-www-form-urlencoded. Ca grossit
la
taille des données mais ça marchait impec...
De mémoire, avec un encoder Base64 du domaine public comme celui dispo à
http://iharder.sourceforge.net/base64/ , ça donnait un truc du genre :
Bonjour Emmanuel,
Ca marche !. En php, il y a la fonction base64_decode qui va bien.
J'avais déja pensé à encoder l'image mais je me demandais s'il n'y avait
pas plus simple.
En tout cas, merci beaucoup pour la solution. Ca me va parfaitement.
C'est pas très "Java" comme soluce. Si tu as des contraintes serveurs qui imposent du PHP uniquement, je peux comprendre, mais dans le cas contraire, il aurait été plus convenable de bosser avec ou des servlets ou RMI, ou une Applet certifiée.
Mais bon, si ca tourne tant mieux et bon code. Ulrich Vachon
"J.M" a écrit dans le message de news: blgkcq$noo$
Emmanuel Puybaret wrote:
Bonjour,
Depuis une Applet, Je désire sauver une image java dans un fichier gif sur le serveur. En cherchant dans les archives, j'ai vu que je n'etais pas le premier a vouloir le faire mais malheureusement, je n'ai pas trouvé d'exemple qui fonctionne.
D'expérience, des élèves que j'ai aidés en juillet dernier ont réalisé ça
avec la méthode POST en utilisant un paramètre dont la valeur vaut l'image
GIF encodée en Base64 puis recodée en x-www-form-urlencoded. Ca grossit la
taille des données mais ça marchait impec... De mémoire, avec un encoder Base64 du domaine public comme celui dispo à http://iharder.sourceforge.net/base64/ , ça donnait un truc du genre :
Bonjour Emmanuel,
Ca marche !. En php, il y a la fonction base64_decode qui va bien. J'avais déja pensé à encoder l'image mais je me demandais s'il n'y avait pas plus simple. En tout cas, merci beaucoup pour la solution. Ca me va parfaitement.