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

Langage PHP Discussion :

Téléchargement automatique de fichiers


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Points : 19
    Points
    19
    Par défaut Téléchargement automatique de fichiers
    Bonjour,
    J’ai besoin, pour me simplifier la vie, de faire un téléchargement automatique d’une adresse fixe (https ://…/…/monfichier.zip) vers mon site hébergé à distance.
    Faire un téléchargement ne me pose pas réellement de problème, beaucoup de scripts à ce sujet, mon souci est que je ne sais pas comment faire pour que le téléchargement se fasse automatiquement dans le répertoire courant où se trouve le script qui lance le transfert.
    Quand je dis « téléchargement automatique », je veux dire sans aucune manipulation autre que le lancement du script.
    Or, les navigateurs imposent, non seulement une boîte de téléchargement mais également un dossier de destination même si celui-ci est paramétrable (outils/options) ce qui n’est pas possible dans le cas d’un hébergement à distance et puis si je dois reparamétrer à chaque fois que je veux télécharger quoique ce soit, cela devient très lourd.

    Ma question est donc simple, même si la réponse ne l’est peut-être pas, comment faire pour un téléchargement dans le répertoire courant sans aucune manipulation autre que le lancement du transfert, sans paramétrer le navigateur, sans boite de téléchargement, ni autres boîtes de dialogue, sachant que je ne peux pas le faire par ftp.

    Merci de votre aide
    Alain

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu te trompes de sens : tu n'es pas dans le cas PHP => X mais X => PHP.
    Un simple copy() doit donc faire l'affaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy('http://xxxxx/fichier', 'monrepertoire/fichier');
    si tu n'as pas accès à la fonction copy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_put_contents('repertoire/fichier', file_get_contents('http://xxxxx/fichier'));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Points : 19
    Points
    19
    Par défaut
    Merci pour ta réponse,

    Cependant, j’avais déjà essayé et cela ne fonctionne pas.

    Quand je teste en local, pour les fonctions « copy » et « file-get-contents », j’ai les messages d’erreurs suivants.

    Warning: copy() [function.copy]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in C:\Program Files\EasyPHP-5.3.8.1\www\Telechargement\Telechargement2.php on line 16

    Warning: copy() [function.copy]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in C:\Program Files\EasyPHP-5.3.8.1\www\Telechargement\Telechargement2.php on line 16

    Warning: copy(https://media.fdj.fr/generated/game/...romillions.zip) [function.copy]: failed to open stream: Invalid argument in C:\Program Files\EasyPHP-5.3.8.1\www\Telechargement\Telechargement2.php on line 16

    Warning: file_get_contents() [function.file-get-contents]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in C:\Program Files\EasyPHP-5.3.8.1\www\Telechargement\Telechargement2.php on line 18

    Warning: file_get_contents(https://media.fdj.fr/generated/game/...romillions.zip) [function.file-get-contents]: failed to open stream: Invalid argument in C:\Program Files\EasyPHP-5.3.8.1\www\Telechargement\Telechargement2.php on line 18

    Warning: file_put_contents(C:/Program Files/EasyPHP-5.3.8.1/www/Telechargement) [function.file-put-contents]: failed to open stream: Permission denied in C:\Program Files\EasyPHP-5.3.8.1\www\Telechargement\Telechargement2.php on line 18

    Quand je teste sur mon hébergement, je n’ai aucun message d’erreur, mais rien ne se passe.
    Je précise que mon hébergeur est un serveur dédié qui ne bloque aucune fonction php.

    Ci-dessous mon code d’essai, peut être commets-je une erreur de syntaxe que je ne vois pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    //dossier courant
    $Dossiercourant = getcwd();
    echo "getcwd -1 ".getcwd()."<br>";
    $Dossiercourant = str_replace("\\", "/", $Dossiercourant); // Pour windows au cas où
    echo "getcwd -2 ".getcwd()."<br>";
     
     
    copy('https://media.fdj.fr/generated/game/euromillions/euromillions.zip', $Dossiercourant);
     
    file_put_contents($Dossiercourant, file_get_contents('https://media.fdj.fr/generated/game/euromillions/euromillions.zip'));
    ?>
    Merci pour vos conseils
    Alain

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il manque le nom du fichier dans ta destination.

    Ta ligne 6 ne sert à rien getcwd() donnera forcemment un chemin correct.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Points : 19
    Points
    19
    Par défaut Téléchargement automatique
    Merci pour ton aide


    J’ai essayé en local et sur mon hébergement les tests suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    $Fichier = "Test1.zip";
    echo "Fichier ".$Fichier."<br>";
    copy('https://media.fdj.fr/generated/game/euromillions/euromillions.zip', $Fichier);
     
    $Fichier = "Test2.zip";
    echo "Fichier ".$Fichier."<br>";
    file_put_contents($Fichier, file_get_contents('https://media.fdj.fr/generated/game/euromillions/euromillions.zip'));
     
    ?>
    Pour info, en local, j’obtiens toujours mes mêmes messages d’erreurs, mais sur mon hébergement les deux fonctions fonctionnent nickel.

    Merci pour ton aide
    Cdt
    Alain

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour ton serveur local, il faut activer l'extension open_ssl.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Points : 19
    Points
    19
    Par défaut Telechargement autoamtique
    Bonjour,

    Effectivement, il existe une possibilité toute simple d'activer openssl sur easyphp
    clic droit sur l'icône => configuration => extensions php et cocher la case opennssl et depuis tout fonctionne parfaitement en local.

    Avec mes remerciements pour ton aide et tes conseils.
    En ce qui me concerne, le sujet est résolu.

    Cdt
    Alain

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Téléchargement automatique de fichier XML
    Par webshop2 dans le forum ASP
    Réponses: 0
    Dernier message: 04/09/2013, 10h19
  2. Téléchargement automatique de fichier d'internet
    Par Lguillon dans le forum Windows 7
    Réponses: 3
    Dernier message: 15/03/2013, 09h02
  3. Téléchargement automatique de fichier zip.
    Par GYK dans le forum Langage
    Réponses: 20
    Dernier message: 22/05/2012, 11h54
  4. Réponses: 3
    Dernier message: 02/12/2010, 20h43
  5. Lancer le téléchargement d'un fichier automatiquement
    Par reeda dans le forum Zend Framework
    Réponses: 14
    Dernier message: 08/06/2010, 12h58

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