[PHP Problème pour le téléchargement

Résolu/Fermé
dyesdyes Messages postés 3 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 29 mars 2010 - 29 mars 2010 à 16:11
smed_79 Messages postés 1291 Date d'inscription dimanche 21 septembre 2008 Statut Contributeur Dernière intervention 17 mars 2017 - 29 mars 2010 à 17:23
Bonjour,
Je viens vers vous en rampant car cela fait quelques temps que je recherche le problème dans mon code. En effet, je ne réussis pas à télécharger les fichiers (tests faits en localhost) mis dans un dossier.

Je m'explique, j'ai fait un listage des fichier contenu dans un dossier avec un lien pour télécharger le fichier voulu. Je lance le téléchargement. la fenêtre s'affiche, j'enregistre. Et là stupeur, je télécharge un fichier de 1ko qu'importe le fichier demandé. Ce n'est évidemment pas le fichier, il a pourtant bien le nom.

Je pense que le problème vient peut être de la gestion des extensions etc. que j'utilise, enfin j'en sais rien.
Donc je vous demande de bien vouloir m'aider. Je peux vous donner le code mais je pense pas qu'un copié collé soit judicieux.

Comment dois-je procéder pour vous faire parvenir le fichier ?

Merci infiniment d'avance !!





A voir également:

3 réponses

dyesdyes Messages postés 3 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 29 mars 2010 1
Modifié par dyesdyes le 29/03/2010 à 16:40
Merci encore !!!! j'écrirais 10000 posts de remerciement si c'était autorisé !!!
1
smed_79 Messages postés 1291 Date d'inscription dimanche 21 septembre 2008 Statut Contributeur Dernière intervention 17 mars 2017 844
29 mars 2010 à 16:23
salam,

pour forcer le téléchargement créer un fichie dl.php avec le code :

<?php
if (isset($_GET["filename"]))
{
	$filename=$_GET["filename"];

	// Envoi du fichier
	header('Content-Transfer-Encoding: none');
	header('Content-Type: application/octetstream; name="'.$filename.'"');
	header('Content-Disposition: attachment; filename="'.$filename.'"');
	header('Content-length: '.filesize($filename));
	header("Pragma: no-cache"); 
	header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); 
	header("Expires: 0"); 
	@readfile($filename) OR die();
}		
?>


pour le lien de telechargement:
<a href="dl.php?filename=fichier-a-telecharger">noms de fichiers à télécharger</a>


dans le lien remplacé : "fichier-a-telecharger" par votre fichier !
0
dyesdyes Messages postés 3 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 29 mars 2010 1
29 mars 2010 à 16:38
Je te remercie infiniment !!!!!

Pourquoi fallait-il forcer le téléchargement ? (désolé je suis un peu curieux ^^)

Merci encore !!! j'étais entrain de m'arracher les cheveux !!!
0
smed_79 Messages postés 1291 Date d'inscription dimanche 21 septembre 2008 Statut Contributeur Dernière intervention 17 mars 2017 844
29 mars 2010 à 17:23
pour quoi forcer un téléchargement ?

penons l'exemple concret d'un fichier PDF.
le document PDF peut varier d'un utilisateur à un autre. certains pourront l'ouvrir directement dans leur navigateur via un plugin intégré tandis que d'autres seront obligés de le télécharger puis de l'ouvrir avec Adobe Acrobat Reader par exemple.
(dépend du goût du webmaster) forcer un téléchargement c'est l'objet de ce code :-)

@++
0