Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster -> FAQ BDD, Cours BDD et Sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 15/12/2009, 12h02   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: août 2007
Messages: 57
Par défaut PHP download fichier

Bonjour,

Je souhaite télécharger un fichier depuis un répertoire /tmp ms ça ne fonctionne pas.

Voilà :
Je fais une extraction depuis ma base dans /tmp/file.txt.
Le fichier existe présent dans le répertoire /tmp.
Ensuite depuis ma page web, je souhaite récupérer ce fichier et l'enregistrer sur mon bureau.

Code :
$tmp=chdir('/tmp/');
echo "<a href='enquete.txt'>telecharger</a>";
Qd je clique sur mon lien, je me retrouve tjrs le répertoire de ma page au-lieu de /tmp.
Peut-etre que j'ai oublié quelque chose d'important.
Vous aurez un solution ?
bella1 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 12h05   #2 (permalink)
Expert Confirmé
 
Avatar de Fench
 
Date d'inscription: mai 2002
Localisation: Auvergne
Messages: 1 567
Par défaut

Bonjour,

C pas plutôt
Code :
 
$tmp=chdir('tmp');
 
__________________
Actuellement AI à l'INRA
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Fench est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 12h16   #3 (permalink)
Nouveau membre du Club
 
Date d'inscription: août 2007
Messages: 57
Par défaut PHP download fichier

Non, c'est bien
Code :
 $tmp=chdir('/tmp/');
Je viens d'essayer de supprimer mon fichier et ça fonctionne avec
Code :
$tmp=chdir('/tmp/');
bella1 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 13h47   #4 (permalink)
Responsable
Modération Web
 
Avatar de Celira
 
Date d'inscription: avril 2007
Localisation: Ile de France
Âge: 25
Messages: 2 748
Par défaut

Lorsque tu cliques sur le lien, tu te trouves dans la page HTML, la notion de dossier courant pour PHP n'a donc plus de sens, étant donné que le script a déjà fini de s'exécuter.

Il faut donc que tu écrives ton lien hypertexte de façon à ce qu'il trouve tout seul :
Code :
echo "<a href='/tmp/enquete.txt'>telecharger</a>";
 
//tu veux éventuellement récupérer le dossier courant de php et l'inscrire dans ton lien
echo '<a href="'.getcwd().'/enquete.txt">telecharger</a>';
 
__________________
Modératrice PHP et modératrice Chat à temps partiel.
Spécialiste P.H.P. du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)

Celira est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 14h46   #5 (permalink)
Nouveau membre du Club
 
Date d'inscription: août 2007
Messages: 57
Par défaut PHP download fichier

C'est bcp mieux.
Dans la barre d'adresse, je vois "serveur/tmp/enquete.txt".
Mais j'ai l'erreur 404 ds IE.

Merci de votre aide,
bella1 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 15h00   #6 (permalink)
Modérateur
 
Avatar de nosferapti
 
Date d'inscription: avril 2009
Messages: 796
Par défaut

quel répertoire est réglé comme la racine web dans le serveur HTTP ?
__________________
GNAP !
nosferapti est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 15h02   #7 (permalink)
Nouveau membre du Club
 
Date d'inscription: août 2007
Messages: 57
Par défaut PHP download fichier

Le répertoire "usr/local/www/enquete"
bella1 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 15h13   #8 (permalink)
Expert Confirmé
 
Avatar de Fench
 
Date d'inscription: mai 2002
Localisation: Auvergne
Messages: 1 567
Par défaut

Et alors est ce que le chemin:
"usr/local/www/enquete/tmp/file.txt" est ok

C quoi le chemin complet de file.txt
__________________
Actuellement AI à l'INRA
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Fench est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 15h43   #9 (permalink)
Nouveau membre du Club
 
Date d'inscription: août 2007
Messages: 57
Par défaut PHP download fichier

Merci, j'ai compris. j'exportais le fichier ds le mauvais répertoire /tmp.

Par contre, le fichier s'ouvre ds IE alorsque je voudrais qu'il me propose si je souhaite l'enregistrer ou l'ouvrir
bella1 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 15h54   #10 (permalink)
Expert Confirmé
 
Avatar de Fench
 
Date d'inscription: mai 2002
Localisation: Auvergne
Messages: 1 567
Par défaut

Je te donne le code car je viens de le faire ya peu de temps ...

Tu appeles donc ce php avec un lien par ex:
Code :
 
<?php
// Ce download est lancé à partir d'un lien tel que:
// <a href="download.php?filename=fileToPrint&dossier=dossierToPrint">Télécharger fichier</a>
// ou header("Location: http://$host$uri/"."download.php?filename=fileToPrint&dossier=dossierToPrint");
 
    // Récupération nom de fichier et chemin).
    if( isset( $_GET['filename'] ) ) $filename = $_GET['filename'];
    if( isset( $_GET['dossier'] ) ) $dossier = $_GET['dossier'];
 
    // Modification de l'application utilisée en fonction du type de fichier
    $ext = strrchr( $filename, "." );
    switch( $ext ) {
        case ".zip": $type = "application/zip"; break;
        case ".txt": $type = "text/plain"; break;
        case ".pdf": $type = "application/pdf"; break;
        default: $type = "application/octet-stream"; break;
    }
 
    // Constitution de l'header suivant le type
    header("Content-Description: File Transfer");
    header("Content-Type: $type\n");
    header("Content-Transfer-Encoding: binary");
    header("Content-disposition: attachment; filename=$filename");
    header("Content-Length: ".filesize( $dossier.$filename ) );
 
    // Lecture et Affichage
    readfile( $dossier.$filename );
 
?>
 
__________________
Actuellement AI à l'INRA
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Fench est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 16h44   #11 (permalink)
Nouveau membre du Club
 
Date d'inscription: août 2007
Messages: 57
Par défaut PHP download fichier

J'ai créé un fichier download.php
J'ai recopié le code ci-dessus.

Dans le fichier de lien, j'ai ajouter :
Code :
echo "<a href=download.php?filename=enquete.txt&dossier=/usr/local/www/enquete/tmp/>Télécharger fichier</a>";
Et ça m'ouvre un fichier enquete.txt vierge.
bella1 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/12/2009, 16h45   #12 (permalink)
Nouveau membre du Club
 
Date d'inscription: août 2007
Messages: 57
Par défaut PHP download fichier

C'est bon ça fonctionne pas

Merci à tous
bella1 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS PHPFAQ PHPCours PHPSources PHPLivres PHPScripts PHPOutils PHPComparatifsZend Framework

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 07h07.


Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.