Accueil > Forum > > > > help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php
help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php
vendredi 28 novembre 2008 ŕ 22:08:04 |
help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php

sebing
|
Bonsoir, J'ai déjŕ eu un problčme pour la suppression du fichier, vous m'ętes venus en aide  et je vous en remercie, maintenant cela fait quelques jours que je me prends la tęte  pour pouvoir réussir ŕ ouvrir ou télécharger les fichiers contenus dans un dossier sur le serveur. Voici le code que je tente d'utiliser:Code de la page sur laquelle est affichés les fichiers sauvegardés sur le serveur: <p align="center">Liste des fichiers <table border="1" bordercolor="#FFFFFF"> <tr> <th>nom</th> <th>Supprimer</th> <th>Ouvrir</th> </tr> <?php if ($handle = opendir('upload_fichier')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") {?> <tr><td><?php echo "$file\n";?></td> <td><?php echo '<a href="delete.php?file=' . urlencode($file) . '">'; ?> Supprimer</a></td> <td><?php echo '<a href="ouvrir.php?file=' . urlencode($file) . '">'; ?>Ouvrir</a></td></tr> <?php } } closedir($handle); } ?> C ode de la page ouvrir.php:<?php $file = "dossier_fichier/".$_GET["file"]; header("Content-Type: application/force-download"); header("Content-Length: ".filesize($file)); header("Content-Disposition: attachment; filename=".$file); readfile($file); ?> Merci de me venir en aide Bonne soirée Seb
|
|
vendredi 28 novembre 2008 ŕ 22:10:54 |
Re : help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php

sebing
|
J'ai oublié, les fichiers sont de tous formats: xls, pdf, doc....
Encore merci
Seb
|
|
samedi 29 novembre 2008 ŕ 14:31:53 |
Re : help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php

malalam
|
Hello,
pourquoi dans un cas tu lis les fichiers dans 'upload_fichier', et dans l'autre, dans 'dossier_fichier'? Ton fichier est soit dans l'un, soit dans l'autre, ŕ priori.
|
|
samedi 29 novembre 2008 ŕ 17:36:33 |
Re : help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php

sebing
|
Bonsoir,
Le dossier est 'upload_fichie'r, j'avais corrigé cette erreur sur le serveur, mais pas dans mon message. Pourquoi ça ne marche pas?
Merci de votre aide
Seb
|
|
dimanche 30 novembre 2008 ŕ 10:44:24 |
Re : help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php

yopai_v
|
Petite remarque avant de commencer : pense ŕ filtrer la variable $file, sinon n'importe qui peut accéder ŕ n'importe quel fichier de ton serveur; un exemple : ouvrir.php?file=../ouvrir.php me renvoie la source de ton fichier. Ce n'est pas trčs grave ? Ok, un autre exemple alors : ouvrir.php?file=../../../etc/passwd ... quelques essais pour ajuster le nombre de ../, et un joli fichier normalement pas accessible. (C'est encore plus drôle avec supprimer !)
Venons-en au problčme lui-męme : "Ca ne marche pas" = ?
Il s'agit d'ailleurs d'une remarque générique, qui pourrait ętre placée dans les "guidelines" d'écriture d'un message (si quelqu'un qui se sent concerné, du genre un admin, lit ça...) : "Ca ne marche pas" ne veut rien dire. S'agit-il : - d'un message d'erreur ? (lequel ? généré ŕ quel moment ?) - d'un comportement qui n'est pas celui attendu ? (quel est le comportement attendu ? celui obtenu ?
Tout le monde peut y gagner si les messages sont explicites en indiquant dans l'ordre : - le code (ça, il y est, y a pas de problčme) - l'opération effectuée ("quand je charge ma page toto.php") - le comportement attendu ("je devrais voir ceci") - le comportement obtenu (j'ai tel message d'erreur, il se passe cela..)
|
|
dimanche 30 novembre 2008 ŕ 11:15:41 |
Re : help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php

sebing
|
Bonjour,
Merci de répondre ŕ mon message, je m'excuse que celui ci soit trop flou pour que vous puissiez me répondre.
[quote=yopai_v]Petite remarque avant de commencer : pense ŕ filtrer la variable $file, sinon n'importe qui peut accéder ŕ n'importe quel fichier de ton serveur; un exemple : ouvrir.php?file=../ouvrir.php me renvoie la source de ton fichier. Ce n'est pas trčs grave ? Ok, un autre exemple alors : ouvrir.php?file=../../../etc/passwd ... quelques essais pour ajuster le nombre de ../, et un joli fichier normalement pas accessible. (C'est encore plus drôle avec supprimer !) [/quote] Dois je quand męme filtrer si les dossiers sont protégés par htaccess?
[quote=yopai_v] Tout le monde peut y gagner si les messages sont explicites en indiquant dans l'ordre : - le code (ça, il y est, y a pas de problčme) - l'opération effectuée ("quand je charge ma page toto.php") - le comportement attendu ("je devrais voir ceci") - le comportement obtenu (j'ai tel message d'erreur, il se passe cela..) [/quote]
Le résultat attendu est lorsque je suis sur la page visualiser, je vois les fichiers disponibles et quand je clique sur ouvrir ŕ coté du fichier voulu, celui ci s'ouvre ou se télécharge sur l'ordinateur. donc pour cela lorsque l'on clique sur ouvrir, l'action est <td><?php echo '<a href="ouvrir.php?file=' . urlencode($file) . '">'; ?>Ouvrir</a></td> la page ouvrir.php s'affiche et il y a des messages d'erreurs: Warning: Cannot modify header information - headers already sent by (output started at /mnt/167/sda/4/f/letheatreenherbe/zone_privee/ouvrir.php:14) in /mnt/167/sda/4/f/letheatreenherbe/zone_privee/ouvrir.php on line 46
Warning: Cannot modify header information - headers already sent by (output started at /mnt/167/sda/4/f/letheatreenherbe/zone_privee/ouvrir.php:14) in /mnt/167/sda/4/f/letheatreenherbe/zone_privee/ouvrir.php on line 47
Warning: Cannot modify header information - headers already sent by (output started at /mnt/167/sda/4/f/letheatreenherbe/zone_privee/ouvrir.php:14) in /mnt/167/sda/4/f/letheatreenherbe/zone_privee/ouvrir.php on line 48 ĐĎࡱá????????????????>??ţ˙ ???????????????m?????????w?????ţ˙˙˙????j??k??l??z??ř??v??÷??H??˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ěĄÁ?q` ??řż??????0???????řI???bjbjqPqP???????????????????'Ă?:?:?S??????????????????????ń???????˙˙?????????˙˙?????????˙˙ Aprčs tous ces signes nous pouvons voir quelques lignes de mon document. Les lignes incriminées par les "Warning" sont: header("Content-Type: application/force-download"); header("Content-Length: ".filesize($file)); header("Content-Disposition: attachment; filename=".$file);
Que dois je faire pour que le document s'ouvre dans une autre page ou que la personne puisse télécharger le fichier.
Merci Bonne journée
Seb
|
|
dimanche 30 novembre 2008 ŕ 11:29:35 |
Re : help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php

malalam
|
Hello,
le message te dit que tu as envoyé un affichage ligne 14 ans ouvrir.php. Tu ne nous as pas montré la totalité du script ouvrir.php. Tu devrais lire quelques tutos sur les headers, il y en a un sur ce site : une fois qu'un output a été fait, on ne peut plus envoyé d'en-tęte au navigateur.
|
|
lundi 1 décembre 2008 ŕ 00:04:21 |
Re : help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php

yopai_v
|
> Dois je quand męme filtrer si les dossiers sont protégés par htaccess? Non pour 2 raisons : * la config htaccess ne protčge l'accčs qu'au répertoire web * et puis surtout, c'est ton script php qui va récupérer le fichier, et lui n'est pas limité par le htaccess De toute maničre, ton raisonnement est incomplet en terme de sécurité : il est possible que le htaccess, ou la configuration de php, fournisse la "glissičre de sécurité" qui va empęcher le systčme de délivrer ses secrets; mais une chose importante en conception logicielle est de ne pas se reposer sur la présence d'une glissičre de sécurité. Quelle que soit la configuration du serveur, ton appli (composée uniquement du code Php) ne doit pas permettre d'accéder ŕ des fichiers qui n'ont rien ŕ voir... La glissičre de sécurité est lŕ par exemple pour éviter l'exploitation d'une faille dans php.
De maničre générale, il faut valider toute entrée de ton script. Ici, je te dirais soit de chasser les / et \ de ton nom de fichier, soit de faire un realpath() sur le fichier obtenu, et de vérifier que le début est le realpath() de ton dossier.
|
|
lundi 1 décembre 2008 ŕ 00:25:39 |
Re : help, probleme pour ouvrir un fichier du serveur ou le telecharger avec php

yopai_v
|
Pour ton problčme proprement dit, je rejoins la réponse de malalam... Et pour enfoncer le clou : (dans la suite des recommandations valables pour tout le monde) Quand un message d'erreur indique un fichier et une ligne, c'est bien de regarder cette ligne-lŕ d'abord, et d'en faire part aux gens ŕ qui on demande de l'aide :-)
> pour que le document s'ouvre dans une autre page ou que la personne puisse télécharger le fichier. Ton code (le Content-Type:applicaton/force-download) est fait pour dire au navigateur que c'est un fichier ŕ télécharger; pour ouvrir dans une nouvelle fenętre il faut renvoyer le Content-Type qui correspond au type de ton document (et faire un target="_blank" sur le lien, ou un window.open en javascript, pour que ce soit une nouvelle fenętre). Enfin, tel que tu poses la question, je suppose que c'est "n'importe, pourvu que ça marche"; mais mieux tu comprendras ce que tu fais, plus vite tu apprendras.
|
|
Cette discussion est classée dans : fichier, ouvrir, php, file, serveur
Répondre ŕ ce message
Sujets en rapport avec ce message
URGENT!!!!!!!!Telecharger un fichier depuis le web vers serveur PHP [ par bonbecman ]
Je recherche le moyen de récupérer un fichier sur Internet (www.quelquechose.fr/unfichier.exe) et de le placer sur mon serveur PHP. Il y a bien une so
Problčme d'upload de fichier [ par phenixoiseau ]
phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du
Problčme d'upload de fichier [ par phenixoiseau ]
phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du
Problčme d'upload de fichier [ par phenixoiseau ]
phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du
Appel de serveur! [ par magicsmacks ]
Bonjour,J'aurai aimé appelé un fichier en php depuis un autre serveur, à l'aide de la fonction require ou include...Cette fonction marche très bien qu
Création de sous-domaine via PHP [ par Adrien ]
Bonjour, Je possède un serveur dédié et j'aurais besoin d'une petite application. Comment créer de manière automatique via un script PHP un sous-domai
erreur inconnue... [ par noSnoR ]
voilà ce qui s'affiche lorsque j'accede à ma page : " Warning: fclose(): supplied argument is not a valid stream resource in compteur.php on line 16
Lancer un fichier m3u sur mon serveur ŕ l'aide de commande php [ par PunKeR77 ]
Bonjour,Je cherche un code php qui me permettrait de lancer un fichier m3u sur mon serveur. En effet j'ai fait un site avec des amis pour diffuser une
pb fopen() selon les FTP [ par xactise ]
Bonjours je susi actuellement sur un projet que je fait en local (avec easyPHP 1-8) j'ai voulu voir ce que sa donner sur le net donc j'ai uploader sur
PHP/formulaire pour uploader un fichier sur le serveur [ par stephpepere37 ]
Bonjour,Je réalise le site d'un ami spécialisé en ressources humaines. Il souhaite que les internautes puisse télécharger un CV de leur poste clientJ'
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
BALISE D'ANCREBALISE D'ANCRE par FADEST
Cliquez pour lire la suite par FADEST
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|