Je souhaite afficher une série de toutes petites images (telle que celle
ici dans $img de 55 octets) en mémoire RAM, sans passer par un fichier
disque temporaire (à moins de savoir créer de la ramdisk en quelques
lignes Perl ;-)). Alors, j'ai essayé ça :
print "Content-type: text/html\n\n";
print "<p>Ceci est une image :</p>";
print $img;
print "<p>C'est tout !</p>";
exit 0;
Si je retire la ligne "... Ceci est une image ...", l'image en question
s'affiche bien dans le navigateur, mais la ligne "... C'est tout !" est
ignorée.
Si je laisse la ligne "... Ceci est une image ...", j'obtiens la phrase,
puis le contenu de l'image interprété en tant que texte et la dernière
ligne de texte.
L'idéal serait bien sûr de passer par un truc comme "print <img
src="display_image_value.cgi"></img>"; avec l'image POStée
(puisqu'impossible de passer les data de l'image en GET sur l'url elle-
même), mais comment simule-t-on le POST sans formulaire et son action ?
Suis-je sûr la/les mauvaise(s) voie(s) ? Comment faire ?
Le Sat, 29 Apr 2006 13:08:06 +0200, Asterbing a écrit :
Ensuite, sur vos conseils, j'ai tenté alt.html parce que je ne pense pas qu'il s'agisse de quelque chose de couramment pratiqué en html, mais de la recherche d'une voie alternative.
Sur fr.* le groupe html,cgi a effectivement un nom épouvantable : <news:fr.comp.infosystemes.www.auteurs>.
Merci de l'info, je n'aurais effectivement pas deviné.
In article <e308qh.3vvkjud.1@genindre.org>, p.texier@alussinan.org
says...
Le Sat, 29 Apr 2006 13:08:06 +0200, Asterbing <no@thanks.com> a écrit :
Ensuite, sur vos conseils, j'ai tenté alt.html parce que je ne pense pas
qu'il s'agisse de quelque chose de couramment pratiqué en html, mais de
la recherche d'une voie alternative.
Sur fr.* le groupe html,cgi a effectivement un nom épouvantable :
<news:fr.comp.infosystemes.www.auteurs>.
Merci de l'info, je n'aurais effectivement pas deviné.
Le Sat, 29 Apr 2006 13:08:06 +0200, Asterbing a écrit :
Ensuite, sur vos conseils, j'ai tenté alt.html parce que je ne pense pas qu'il s'agisse de quelque chose de couramment pratiqué en html, mais de la recherche d'une voie alternative.
Sur fr.* le groupe html,cgi a effectivement un nom épouvantable : <news:fr.comp.infosystemes.www.auteurs>.
Merci de l'info, je n'aurais effectivement pas deviné.
Asterbing
In article <e2vjnp$q8l$, nicolas$ says...
Asterbing wrote in message :
afraid of GET because of lengh url limitation, knowing my largest images may be of 10KB, while smallest 50 bytes
Cette parenthèse suffit à montrer que comme je le soupçonnais il y a un gros problème de compréhension des mécanismes mis en jeu à la base. Mais je n'ai vraiment aucune envie de perdre du temps à expliquer ça à quelqu'un qui méprise mes explications et mes conseils.
Si je te présente mes excuses quant à la méprise que tu as pu ressentir, te demande dans le même temps de ne pas ignorer ce que j'ai dis sur le mode de communication (la forme, pas le fond), es-tu satisfait ?
In article <e2vjnp$q8l$1@biggoron.nerim.net>, nicolas$george@salle-s.org
says...
Asterbing wrote in message
<MPG.1ebd6780b4c8c17798982a@news.tiscali.fr>:
afraid of GET because of lengh
url limitation, knowing my largest images may be of 10KB, while smallest
50 bytes
Cette parenthèse suffit à montrer que comme je le soupçonnais il y a un gros
problème de compréhension des mécanismes mis en jeu à la base. Mais je n'ai
vraiment aucune envie de perdre du temps à expliquer ça à quelqu'un qui
méprise mes explications et mes conseils.
Si je te présente mes excuses quant à la méprise que tu as pu ressentir,
te demande dans le même temps de ne pas ignorer ce que j'ai dis sur le
mode de communication (la forme, pas le fond), es-tu satisfait ?
afraid of GET because of lengh url limitation, knowing my largest images may be of 10KB, while smallest 50 bytes
Cette parenthèse suffit à montrer que comme je le soupçonnais il y a un gros problème de compréhension des mécanismes mis en jeu à la base. Mais je n'ai vraiment aucune envie de perdre du temps à expliquer ça à quelqu'un qui méprise mes explications et mes conseils.
Si je te présente mes excuses quant à la méprise que tu as pu ressentir, te demande dans le même temps de ne pas ignorer ce que j'ai dis sur le mode de communication (la forme, pas le fond), es-tu satisfait ?
Gauthier
Bonjour,
Le Fri, 28 Apr 2006 15:19:18 +0200, Asterbing a écrit:
Bonjour,
Je souhaite afficher une série de toutes petites images (telle que celle ici dans $img de 55 octets) en mémoire RAM, sans passer par un fichier disque temporaire (à moins de savoir créer de la ramdisk en quelques lignes Perl ;-)). Alors, j'ai essayé ça :
print "Content-type: text/htmlnn"; print "<p>Ceci est une image :</p>"; print $img; print "<p>C'est tout !</p>"; exit 0;
Suis-je sûr la/les mauvaise(s) voie(s) ? Comment faire ?
Si l'essentiel est de ne pas stocker les images sur le disque, il me semble qu'il vaudrait mieux utiliser deux scripts CGI, l'un renvoyant du code html, l'autre une/des image(s). On aurait alors
print "Content-type: text/htmlnn"; print "<p>Ceci est une image :</p>"; print "<p><img src="/cgi-bin/make_image.pl?argument=quelquechose"></p>"; print "<p>C'est tout !</p>"; exit 0;
-- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn FOE-Belgium : http://www.amisdelaterre.be
Bonjour,
Le Fri, 28 Apr 2006 15:19:18 +0200, Asterbing <no@thanks.com> a écrit:
Bonjour,
Je souhaite afficher une série de toutes petites images (telle que celle
ici dans $img de 55 octets) en mémoire RAM, sans passer par un fichier
disque temporaire (à moins de savoir créer de la ramdisk en quelques
lignes Perl ;-)). Alors, j'ai essayé ça :
print "Content-type: text/htmlnn";
print "<p>Ceci est une image :</p>";
print $img;
print "<p>C'est tout !</p>";
exit 0;
Suis-je sûr la/les mauvaise(s) voie(s) ? Comment faire ?
Si l'essentiel est de ne pas stocker les images sur le disque, il me
semble qu'il vaudrait mieux utiliser deux scripts CGI, l'un renvoyant du
code html, l'autre une/des image(s). On aurait alors
print "Content-type: text/htmlnn";
print "<p>Ceci est une image :</p>";
print "<p><img src="/cgi-bin/make_image.pl?argument=quelquechose"></p>";
print "<p>C'est tout !</p>";
exit 0;
--
^^ Gauthier
(_____/°°-ç
| _`-"
)/@mmm||
nn nn FOE-Belgium : http://www.amisdelaterre.be
Le Fri, 28 Apr 2006 15:19:18 +0200, Asterbing a écrit:
Bonjour,
Je souhaite afficher une série de toutes petites images (telle que celle ici dans $img de 55 octets) en mémoire RAM, sans passer par un fichier disque temporaire (à moins de savoir créer de la ramdisk en quelques lignes Perl ;-)). Alors, j'ai essayé ça :
print "Content-type: text/htmlnn"; print "<p>Ceci est une image :</p>"; print $img; print "<p>C'est tout !</p>"; exit 0;
Suis-je sûr la/les mauvaise(s) voie(s) ? Comment faire ?
Si l'essentiel est de ne pas stocker les images sur le disque, il me semble qu'il vaudrait mieux utiliser deux scripts CGI, l'un renvoyant du code html, l'autre une/des image(s). On aurait alors
print "Content-type: text/htmlnn"; print "<p>Ceci est une image :</p>"; print "<p><img src="/cgi-bin/make_image.pl?argument=quelquechose"></p>"; print "<p>C'est tout !</p>"; exit 0;
-- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn FOE-Belgium : http://www.amisdelaterre.be
Oui, mais justement, que serait cet argument ? Si c'est le chemin du fichier à renvoyer vers le navigateur, pas de problème, mais je n'évite alors pas le passage par un fichier disque côté serveur.
Il s'agirait donc pour mon cas de mettre directement les data de l'image (encodées base64) en argument... Mais, quoique certains disent y arriver, il existe une limite en taille selon les serveurs (j'ai lu des choses comme 8KB pour Apache2, sais pas si c'est exact).
In article <slrne59h4g.1gn.gvdmoort@fantasio.champignac>,
gvdmoort@NOSPAM_skynet.be says...
Oui, mais justement, que serait cet argument ? Si c'est le chemin du
fichier à renvoyer vers le navigateur, pas de problème, mais je n'évite
alors pas le passage par un fichier disque côté serveur.
Il s'agirait donc pour mon cas de mettre directement les data de l'image
(encodées base64) en argument... Mais, quoique certains disent y
arriver, il existe une limite en taille selon les serveurs (j'ai lu des
choses comme 8KB pour Apache2, sais pas si c'est exact).
Oui, mais justement, que serait cet argument ? Si c'est le chemin du fichier à renvoyer vers le navigateur, pas de problème, mais je n'évite alors pas le passage par un fichier disque côté serveur.
Il s'agirait donc pour mon cas de mettre directement les data de l'image (encodées base64) en argument... Mais, quoique certains disent y arriver, il existe une limite en taille selon les serveurs (j'ai lu des choses comme 8KB pour Apache2, sais pas si c'est exact).
Gauthier
Le Sun, 30 Apr 2006 21:12:23 +0200, Asterbing a écrit:
J'ai proposé ici d'ajouter un argument en partant de l'idée que le script make_image.pl pouvait créer plusieurs images différentes, et donc qu'il fallait passer un argument pour choisir l'image (si on écrit un script pour une image, autant stocker les images directement...) Il s'agit bien d'images qui sont créées "à la volée" et non pas stockées sur le disque. Tu avais donné dans ton exemple initial un bout de code qui envoyait sur la sortie standard les données binaires de l'image; il suffit d'imaginer dans ce script plusieurs fonctions semblables créant des images différentes, et de faire appel à la fonction désirée avec un argument qui peut être une simple valeur numérique (1,2,3...).
On peut aussi imaginer un script unique qui, selon les arguments, produit des pages html ou des images. Ainsi un lien
http://www.truc.org/index.pl?page¬cueil
produirait une page html comprenant elle-même une ligne
Tes difficultés proviennent du fait que tu as un script qui envoit en une fois des types de données différentes (du texte et des images), et ça coince avec le protocole http. Dans ce que je propose, tu as un script qui s'appelle lui-même de façon récursive; il envoie successivement du texte, puis une image.
-- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn
Le Sun, 30 Apr 2006 21:12:23 +0200, Asterbing <no@thanks.com> a écrit:
In article <slrne59h4g.1gn.gvdmoort@fantasio.champignac>,
gvdmoort@NOSPAM_skynet.be says...
J'ai proposé ici d'ajouter un argument en partant de l'idée que le
script make_image.pl pouvait créer plusieurs images différentes,
et donc qu'il fallait passer un argument pour choisir l'image
(si on écrit un script pour une image, autant stocker les images directement...)
Il s'agit bien d'images qui sont créées "à la volée" et non pas stockées
sur le disque. Tu avais donné dans ton exemple initial un bout de code
qui envoyait sur la sortie standard les données binaires de l'image;
il suffit d'imaginer dans ce script plusieurs fonctions semblables
créant des images différentes, et de faire appel à la fonction désirée
avec un argument qui peut être une simple valeur numérique (1,2,3...).
On peut aussi imaginer un script unique qui, selon les arguments, produit des
pages html ou des images. Ainsi un lien
http://www.truc.org/index.pl?page¬cueil
produirait une page html comprenant elle-même une ligne
Tes difficultés proviennent du fait que tu as un script qui envoit
en une fois des types de données différentes (du texte et des images),
et ça coince avec le protocole http. Dans ce que je propose, tu as un
script qui s'appelle lui-même de façon récursive; il envoie
successivement du texte, puis une image.
J'ai proposé ici d'ajouter un argument en partant de l'idée que le script make_image.pl pouvait créer plusieurs images différentes, et donc qu'il fallait passer un argument pour choisir l'image (si on écrit un script pour une image, autant stocker les images directement...) Il s'agit bien d'images qui sont créées "à la volée" et non pas stockées sur le disque. Tu avais donné dans ton exemple initial un bout de code qui envoyait sur la sortie standard les données binaires de l'image; il suffit d'imaginer dans ce script plusieurs fonctions semblables créant des images différentes, et de faire appel à la fonction désirée avec un argument qui peut être une simple valeur numérique (1,2,3...).
On peut aussi imaginer un script unique qui, selon les arguments, produit des pages html ou des images. Ainsi un lien
http://www.truc.org/index.pl?page¬cueil
produirait une page html comprenant elle-même une ligne
Tes difficultés proviennent du fait que tu as un script qui envoit en une fois des types de données différentes (du texte et des images), et ça coince avec le protocole http. Dans ce que je propose, tu as un script qui s'appelle lui-même de façon récursive; il envoie successivement du texte, puis une image.
-- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn
Patrick Jacquot
Le Sat, 29 Apr 2006 09:50:43 +0200, kurtz le pirate a écrit :
Alors, si je vais sur alt.html, viendras-tu me livrer LA solution ? Je n'attends que ça : la solution... Puisque le chemin passant par data: URI ne fonctionne pas dans Internet Explorer.
peut être justement que sur *.html, tu auras plus de réponses. le problème (html je répète), c'est que ie ne supporte pas la construction que Nicolas George a donné qui fonctionne bien avec d'autres vrais navigateurs... et là, on s'éloigne encore de ce forum sur perl !
mauvais navigateur --> changer navigateur :-)
-- Patrick
Le Sat, 29 Apr 2006 09:50:43 +0200, kurtz le pirate a écrit :
Alors, si je vais sur alt.html, viendras-tu me livrer LA solution ? Je
n'attends que ça : la solution... Puisque le chemin passant par data:
URI ne fonctionne pas dans Internet Explorer.
peut être justement que sur *.html, tu auras plus de réponses. le
problème (html je répète), c'est que ie ne supporte pas la construction
que Nicolas George a donné qui fonctionne bien avec d'autres vrais
navigateurs... et là, on s'éloigne encore de ce forum sur perl !
Le Sat, 29 Apr 2006 09:50:43 +0200, kurtz le pirate a écrit :
Alors, si je vais sur alt.html, viendras-tu me livrer LA solution ? Je n'attends que ça : la solution... Puisque le chemin passant par data: URI ne fonctionne pas dans Internet Explorer.
peut être justement que sur *.html, tu auras plus de réponses. le problème (html je répète), c'est que ie ne supporte pas la construction que Nicolas George a donné qui fonctionne bien avec d'autres vrais navigateurs... et là, on s'éloigne encore de ce forum sur perl !
mauvais navigateur --> changer navigateur :-)
-- Patrick
Gauthier
Le Fri, 28 Apr 2006 15:19:18 +0200, Asterbing a écrit:
print "Content-type: text/htmlnn"; print "<p>Ceci est une image :</p>"; print $img; print "<p>C'est tout !</p>"; exit 0;
Si je retire la ligne "... Ceci est une image ...", l'image en question s'affiche bien dans le navigateur, mais la ligne "... C'est tout !" est ignorée.
Ça me semble logique: après l'en-tête http, les données envoyées sont une image ; un navigateur comme InternetExplorer, si je ne me trompe, outrepasse l'en-tête (stratégie discutable, mais c'est un autre débat...) et reconnait l'image, donc, elle s'affiche.
Si je laisse la ligne "... Ceci est une image ...", j'obtiens la phrase, puis le contenu de l'image interprété en tant que texte et la dernière ligne de texte.
Dans ce cas, les premières données étant du texte, ce qui suit est interprété de la même manière, donc l'image s'afiche sous forme de texte, ainsi que tout ce qui suit.
Tes autres interlocuteurs n'ont pas tort, tes problèmes relèvent de la compréhension des mécanismes http, pas de Perl.
Cordialement, -- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn
Le Fri, 28 Apr 2006 15:19:18 +0200, Asterbing <no@thanks.com> a écrit:
print "Content-type: text/htmlnn";
print "<p>Ceci est une image :</p>";
print $img;
print "<p>C'est tout !</p>";
exit 0;
Si je retire la ligne "... Ceci est une image ...", l'image en question
s'affiche bien dans le navigateur, mais la ligne "... C'est tout !" est
ignorée.
Ça me semble logique: après l'en-tête http, les données envoyées sont une
image ; un navigateur comme InternetExplorer, si je ne me trompe,
outrepasse l'en-tête (stratégie discutable, mais c'est un autre
débat...) et reconnait l'image, donc, elle s'affiche.
Si je laisse la ligne "... Ceci est une image ...", j'obtiens la phrase,
puis le contenu de l'image interprété en tant que texte et la dernière
ligne de texte.
Dans ce cas, les premières données étant du texte, ce qui suit est
interprété de la même manière, donc l'image s'afiche sous forme de
texte, ainsi que tout ce qui suit.
Tes autres interlocuteurs n'ont pas tort, tes problèmes relèvent de la
compréhension des mécanismes http, pas de Perl.
Cordialement,
--
^^ Gauthier
(_____/°°-ç
| _`-"
)/@mmm||
nn nn
Le Fri, 28 Apr 2006 15:19:18 +0200, Asterbing a écrit:
print "Content-type: text/htmlnn"; print "<p>Ceci est une image :</p>"; print $img; print "<p>C'est tout !</p>"; exit 0;
Si je retire la ligne "... Ceci est une image ...", l'image en question s'affiche bien dans le navigateur, mais la ligne "... C'est tout !" est ignorée.
Ça me semble logique: après l'en-tête http, les données envoyées sont une image ; un navigateur comme InternetExplorer, si je ne me trompe, outrepasse l'en-tête (stratégie discutable, mais c'est un autre débat...) et reconnait l'image, donc, elle s'affiche.
Si je laisse la ligne "... Ceci est une image ...", j'obtiens la phrase, puis le contenu de l'image interprété en tant que texte et la dernière ligne de texte.
Dans ce cas, les premières données étant du texte, ce qui suit est interprété de la même manière, donc l'image s'afiche sous forme de texte, ainsi que tout ce qui suit.
Tes autres interlocuteurs n'ont pas tort, tes problèmes relèvent de la compréhension des mécanismes http, pas de Perl.
Cordialement, -- ^^ Gauthier (_____/°°-ç | _`-" )/@mmm|| nn nn
Asterbing
In article , says...
J'ai proposé ici d'ajouter un argument en partant de l'idée que le script make_image.pl pouvait créer plusieurs images différentes, et donc qu'il fallait passer un argument pour choisir l'image (si on écrit un script pour une image, autant stocker les images directement...)
Je suis 'accord pour tout le reste de ton post, sauf ça. Un truc qui n'étais peut-être pas clair dans ma demande initiale : ces images ne peuvent provenir d'une liste figées qui serait hardcodée dans un script Perl, puis retournées à la demande via un argument de type index (pour choisir quelle image de la liste renvoyer vers le navigateur). Non non, il s'agit en fait d'images construites (en RAM) à partir d'info saisies par l'utilisateur-visiteur. Aucune n'est semblable à la précédente et je ne peux donc pas stocker de liste prédéfinie.
In article <slrne5bqt8.2qo.gvdmoort@fantasio.champignac>,
gvdmoort@NOSPAM_skynet.be says...
J'ai proposé ici d'ajouter un argument en partant de l'idée que le
script make_image.pl pouvait créer plusieurs images différentes,
et donc qu'il fallait passer un argument pour choisir l'image
(si on écrit un script pour une image, autant stocker les images directement...)
Je suis 'accord pour tout le reste de ton post, sauf ça. Un truc qui
n'étais peut-être pas clair dans ma demande initiale : ces images ne
peuvent provenir d'une liste figées qui serait hardcodée dans un script
Perl, puis retournées à la demande via un argument de type index (pour
choisir quelle image de la liste renvoyer vers le navigateur). Non non,
il s'agit en fait d'images construites (en RAM) à partir d'info saisies
par l'utilisateur-visiteur. Aucune n'est semblable à la précédente et je
ne peux donc pas stocker de liste prédéfinie.
J'ai proposé ici d'ajouter un argument en partant de l'idée que le script make_image.pl pouvait créer plusieurs images différentes, et donc qu'il fallait passer un argument pour choisir l'image (si on écrit un script pour une image, autant stocker les images directement...)
Je suis 'accord pour tout le reste de ton post, sauf ça. Un truc qui n'étais peut-être pas clair dans ma demande initiale : ces images ne peuvent provenir d'une liste figées qui serait hardcodée dans un script Perl, puis retournées à la demande via un argument de type index (pour choisir quelle image de la liste renvoyer vers le navigateur). Non non, il s'agit en fait d'images construites (en RAM) à partir d'info saisies par l'utilisateur-visiteur. Aucune n'est semblable à la précédente et je ne peux donc pas stocker de liste prédéfinie.
Asterbing
In article , says...
Si je retire la ligne "... Ceci est une image ...", l'image en question s'affiche bien dans le navigateur, mais la ligne "... C'est tout !" est ignorée.
Ça me semble logique: après l'en-tête http, les données envoyées sont une image ; un navigateur comme InternetExplorer, si je ne me trompe, outrepasse l'en-tête (stratégie discutable, mais c'est un autre débat...) et reconnait l'image, donc, elle s'affiche.
Si je laisse la ligne "... Ceci est une image ...", j'obtiens la phrase, puis le contenu de l'image interprété en tant que texte et la dernière ligne de texte.
Dans ce cas, les premières données étant du texte, ce qui suit est interprété de la même manière, donc l'image s'afiche sous forme de texte, ainsi que tout ce qui suit.
J'ai compris cette "particularité" de IE plus tard, après ce post initial.
Tes autres interlocuteurs n'ont pas tort, tes problèmes relèvent de la compréhension des mécanismes http, pas de Perl.
Je ne contestais pas le fond, juste la forme.
Cordialement, Cordialement aussi
In article <slrne5brd5.2qo.gvdmoort@fantasio.champignac>,
gvdmoort@NOSPAM_skynet.be says...
Si je retire la ligne "... Ceci est une image ...", l'image en question
s'affiche bien dans le navigateur, mais la ligne "... C'est tout !" est
ignorée.
Ça me semble logique: après l'en-tête http, les données envoyées sont une
image ; un navigateur comme InternetExplorer, si je ne me trompe,
outrepasse l'en-tête (stratégie discutable, mais c'est un autre
débat...) et reconnait l'image, donc, elle s'affiche.
Si je laisse la ligne "... Ceci est une image ...", j'obtiens la phrase,
puis le contenu de l'image interprété en tant que texte et la dernière
ligne de texte.
Dans ce cas, les premières données étant du texte, ce qui suit est
interprété de la même manière, donc l'image s'afiche sous forme de
texte, ainsi que tout ce qui suit.
J'ai compris cette "particularité" de IE plus tard, après ce post
initial.
Tes autres interlocuteurs n'ont pas tort, tes problèmes relèvent de la
compréhension des mécanismes http, pas de Perl.
Si je retire la ligne "... Ceci est une image ...", l'image en question s'affiche bien dans le navigateur, mais la ligne "... C'est tout !" est ignorée.
Ça me semble logique: après l'en-tête http, les données envoyées sont une image ; un navigateur comme InternetExplorer, si je ne me trompe, outrepasse l'en-tête (stratégie discutable, mais c'est un autre débat...) et reconnait l'image, donc, elle s'affiche.
Si je laisse la ligne "... Ceci est une image ...", j'obtiens la phrase, puis le contenu de l'image interprété en tant que texte et la dernière ligne de texte.
Dans ce cas, les premières données étant du texte, ce qui suit est interprété de la même manière, donc l'image s'afiche sous forme de texte, ainsi que tout ce qui suit.
J'ai compris cette "particularité" de IE plus tard, après ce post initial.
Tes autres interlocuteurs n'ont pas tort, tes problèmes relèvent de la compréhension des mécanismes http, pas de Perl.