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 :

[FTP] Problème avec le forçage de téléchargement de fichier


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Par défaut [FTP] Problème avec le forçage de téléchargement de fichier


    j'ai utilisé le code suivant trouvé dans la faq php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       $fichier = 'ftp://'.$server.'/'.$dir.'/'.$_GET['file'];
       $nomFichier = $_GET['file'];
       $tailleFichier = filesize($fichier);
     
       header('Content-Type: application/octet-stream');
       header("Content-Length: $tailleFichier");
       header("Content-Disposition: attachment; filename=\"$nomFichier\"");
       readfile($fichier);
    J'ai bien une fenêtre qui s'ouvre et qui me propose soit d'ouvrir soit d'enregistrer. Mais, que ce soit pour l'ouverture ou l'enregistrement, je recois un fichier vide, sans rien dedans.

    Quelqu'un a une petite idée?

    pour voir ce dont je parle => http://www.10-nice.info/projet/ftp

  2. #2
    Membre Expert
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 299
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 299
    Par défaut
    Oui le chemin du fichier est incorrect

  3. #3
    Membre chevronné

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Par défaut
    j'ai trouvé un / en trop dans le chemin que j'ai retiré mais je ne vois pas ailleurs où mon chemin est incorrect :s

    Et pourtant il doit bien être érroné car j'ai l'erreur suivante lorsque je fais un die() après le filesize($fichier)

    Warning: filesize() [function.filesize]: stat failed for ftp://pocus/rakion/images/cross.gif in D:\Web\projet\ftp\connect.php on line 89

  4. #4
    Membre chevronné

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Par défaut
    Je crois que je viens de comprendre, le pb viens du fait que ce soit tout en ftp, et on accède pas comme ca à un ftp ni les données qu'il contient.

    J'ai pas accès à moin image en tappant directement son chemoin dans mon explorateur/navigateur. Depuis un pc distant non plus. Or, en accèdant pas à pas à mon ftp et donc en ayant du m'identifier je suis reconnu par mon ftp et j'ai librement accès a mon image qui possède bien le chemin indiqué

    Je suppose qu'il faille que je passe par la connexion ftp établie en php pour obtenir les données de mon fichier.

    J'ai bon ? Existe t il un genre de getFile() pour ca ?

  5. #5
    Membre chevronné

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Par défaut
    Ca fonctionne

    pour ceux qui aurait un jour le même besoin je met ici le code de ma solution (mais de toute façon il doit pas en exister des millions). En fait je télécharge un premère fois le fichier sur le serveur php depuis le serveur ftp par la fonction ftp_get, ensuite je force le téléchargement à partir du fichier téléchargé.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    $_GET['file'] est le nom du fichier à télécharger
    $dir est le repertoire ou se trouve le fichier
     
    if( @ftp_get($connexion, 'temp/'.$_GET['file'], $dir.'/'.$_GET['file'], FTP_BINARY)) {
          $fichier = 'temp/'.$_GET['file'];
          $nomFichier = $_GET['file'];
          $tailleFichier = filesize($fichier);
     
          header('Content-Type: application/octet-stream');
          header("Content-Length: $tailleFichier");
          header("Content-Disposition: attachment; filename=\"$nomFichier\"");
          header("Content-Transfer-Encoding: application/octet-stream\n");
          header("Pragma: public");
          readfile($fichier);
          unlink('temp/'.$_GET['file']);
       } else {
          echo('
    		<script type="text/javascript">	
    		   //<![CDATA[
    		   alert(\'Impossible de télécharger le fichier '.$_GET['file'].'\');
    		   window.location = \'connect.php\';
             //]]>
    		</script>
          ');
       }
    et ca fonctionne

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

Discussions similaires

  1. [FTP] Problème avec fopen ou mon hébergeur ?
    Par YagamiLight dans le forum Langage
    Réponses: 2
    Dernier message: 06/07/2007, 18h06
  2. [FTP] Problème avec shell_exec() (safe_mode = Off)
    Par FrankOVD dans le forum Langage
    Réponses: 10
    Dernier message: 08/03/2007, 16h02
  3. [FTP] Problème avec mput
    Par Death83 dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/12/2006, 14h00
  4. [FTP] Problème avec fopen sur URL
    Par Biboune2008 dans le forum Langage
    Réponses: 14
    Dernier message: 22/06/2006, 18h00
  5. Réponses: 21
    Dernier message: 10/04/2006, 00h13

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