IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Perl Discussion :

bouton de telechargement de fichier


Sujet :

Interfaces Graphiques Perl

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 67
    Points : 40
    Points
    40
    Par défaut
    Bonjour,

    J'ai un programme perl/tk qui me cré un fichier.
    Actuellement dois aller le chercher en se connectant via un autre utilitaire.
    J'aimerai creer un bouton qui me permette de telecharger directement le fichier en question du serveur vers mon poste (type enregistrer sous).
    J'ai fait quelques recherches et j'ai trouvé getOpenFile et getSaveFile.

    Je n'ai pas l'impression que ce soit le fonctionnement recherché...
    Auriez-vous un exemple ou que je puisse adapter a mon programme?
    Quelquechose du type ou je spécifie le fichier à telecharger et je n'ai plus qu'à choisir mon fichier sur l'ordinateur...
    ps: Mon programme tourne sur le serveur.

    Merci d'avance.

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 164
    Points : 218
    Points
    218
    Par défaut
    Je ne suis pas sûr de bien comprendre. J'ai écrit un script (à placer sur le serveur, personnellement je l'ai appelé "envoyer.cgi"), le voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #!/usr/bin/perl -wT
    use CGI qw(:standard) ;
     
    my $photo ;
    my $fileholder ;
    $photo=param('photo') ;
    if($photo !~ /\w+\.jpg/) {die("C'est pas un fichier jpg") ;}
    undef $/ ; #enable slurp mode 
    open(IN,"<$photo") or die("$! : can't open $photo") ;
     
    $fileholder=<IN> ;
    close(IN) ;
    print "Content-Type: application/xdownload\n" ;
    print "Content-Disposition: attachement; filename=$photo\n\n";
    print $fileholder;
    Il permet à un visiteur de mon site de télécharger une image, un fichier d'extension jpg.
    On peut le lancer en mettant dans la barre d'adresse du navigateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    envoyer.cgi?photo=machin.jpg
    Il est possible de l'activer via une Form avec un bouton "submit" où peut-être à partir d'une commande (un bouton) qui affiche la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    envoyer.cgi?photo=machin.jpg
    Il faudra changer la ligne qui débute par if($photo !~ /\w+\.jpg/) suivant le type de fichier à télécharger, et faire attention que ce script peut permettre à un hacker de télécharger tous les fichiers du site si on ne prend pas de précautions.
    Il faut faire attention aux chemins suivant les répertoires où se trouvent le script et le fichier à télécharger, et peut-être changer le shebang.
    En espérant que ça aide,
    cordialement
    nibroc

Discussions similaires

  1. Wget - télécharger des fichiers non-html
    Par narmataru dans le forum Réseau
    Réponses: 10
    Dernier message: 14/07/2018, 15h20
  2. Réponses: 3
    Dernier message: 19/01/2006, 13h44
  3. telecharger un fichier
    Par mokha8581 dans le forum Langage
    Réponses: 2
    Dernier message: 10/09/2005, 14h15
  4. [VB6] Télécharger un fichier avec VB 6
    Par lechevbt dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 18/02/2004, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo