[Question de debutant?] Renvoyer un fichier binaire par cgi
2 réponses
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.
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
Jacques Caron
On Fri, 14 Oct 2005 23:49:35 +0200, Patrice Chevee wrote:
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.
On Fri, 14 Oct 2005 23:49:35 +0200, Patrice Chevee
<patrice._OTEZ-MOI_chevee@neuf.fr> wrote:
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.
On Fri, 14 Oct 2005 23:49:35 +0200, Patrice Chevee wrote:
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.