[Question de debutant?] Renvoyer un fichier binaire par cgi

Le
Patrice Chevee
Bonjour,

je cherche a faire qu'un script cgi (mettons toto.cgi) renvoie un fichier
binaire dont l'adresse url doit rester secrète.

Attention: je ne cherche pas à ce que le script renvoie:

location: http://blabla/fichiersecret.bin

car, je le répète, l'url de fichiersecret.bin ne doit être en aucun cas
révélée. Ce que je voudrais, c'est que le script lise le fichier secret, et
renvoie son contenu binaire. J'imagine que ce n'est pas tres difficile à
faire, mais je ne sais pas comment m'y prendre. Si le fichier avait été un
fichier texte, ça ne m'aurait posé aucun problème, grâce à la fonction
print.

Merci d'avance de votre aide, et bien à vous

P.C.
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Jacques Caron
Le #10002
On Fri, 14 Oct 2005 23:49:35 +0200, Patrice Chevee

Ce que je voudrais, c'est que le script lise le fichier secret, et
renvoie son contenu binaire. J'imagine que ce n'est pas tres difficile à
faire, mais je ne sais pas comment m'y prendre. Si le fichier avait été
un fichier texte, ça ne m'aurait posé aucun problème, grâce à la fonction
print.


Il y a probablement beaucoup de façons de le faire, par exemple:

my $size = -s $fname;
open my $file,$fname;
read $file,$data,$size;
close $file;
print $data;

Attention, si tu veux vraiment faire les choses proprement il convient de
générer un Content-Length et de gérer les Range:, les If-Modified-Since,
les HEAD, etc. Aussi, il peut être utile de faire attention au binmode sur
ton STDOUT si tu l'as modifié par ailleurs.

Si tu utilises mod_perl tu peux probablement faire un handler qui va juste
"résoudre" le fichier et laisser Apache se débrouiller avec.

Jacques.
--
Oxado http://www.oxado.com/

Jérémy JUST
Le #9999
On Fri, 14 Oct 2005 23:49:35 +0200
"Patrice Chevee"
Si le fichier avait été un fichier texte, ça ne m'aurait posé aucun
problème, grâce à la fonction print.


On peut faire exactement pareil avec un fichier binaire.

Il faut juste donner le bon Content-Type.


--
Jérémy JUST
Poster une réponse
Anonyme