bonjour,
dans mon site j'ai une rubrique que j'ai appelé "bibliotheque", et je voudrais mettre dedont des document telechargeable, mais je n'ai pas la moindre idée comment je peux faire ça!!
quelqu'un peux m'aider svp? merci d'avance
Est ce que c'est pas dangereux comme méthode ?

Si quelqu'un modifie à la main l'url, il pourrait télécharger tes fichiers php en texte... et du coup accéder à ton mot de passe db par exemple...
un bon vieux
<a href="monfichier">Télécharger mon fichier</a> 


marche très bien

où si on a beaucoup de fichiers et que leurs noms sont parlants :
<a href="chemin_biblio/">Fichiers à télécharger</a> 


cette dernière solution perds le design du site mais est très efficace.
Mouais... un simple lien vers le document à télécharger suffit :

<a href="mon_document.zip">Mon document</a>


Edit: grillé
Modifié par jb_gfx (05 Jun 2011 - 12:15)
pixelweb a écrit :
Est ce que c'est pas dangereux comme méthode ?

Effectivement ! Je viens de tester à la main. On peut très facilement télécharger des fichiers sensibles, même s'ils se trouvent dans un dossier protégé par MDP.
Il doit cependant exister un moyen d'empêcher cela. Mais je n'ai pas encore trouvé! Avis à ceux que cela intéresse! Smiley cligne

@jb_gfx > Il est certain que pour télécharger un .zip cela n'a jamais posé de problème.
Le script de ce site-ci devrait mieux répondre aux problèmes de sécurité évoqués par pixelweb.
Qu'en pensez-vous? Je l'ai testé et il fonctionne à condition de remplacer la ligne
header("location:".$chemin . $Fichier);
par
readfile($chemin . $Fichier);
et d'apporter les modifications indiquées par l'auteur.

@Arialia > il faut bien distinguer les fichiers qui ne font que s'ouvrir et ceux qui proposent leur ouverture et/ou leur téléchargement.
Modifié par lddsoft (05 Jun 2011 - 14:47)
nounou85 a écrit :
bonjour,
dans mon site j'ai une rubrique que j'ai appelé &quot;bibliotheque&quot;, et je voudrais mettre dedont des document telechargeable, mais je n'ai pas la moindre idée comment je peux faire ça!!
quelqu'un peux m'aider svp? merci d'avance


uuuh ?! en html, c'est trop simple, voyons-voyons :
1. constituer une archive .zip ou .7z pour chaque fichier ou dossier
2. uploader sur votre site les trucs-machins à downloader
3. dans votre page en ligne, écrire les liens de téléchargements sous la forme :
<a href="dossiers/fichier-machin.zip">télécharger le fichier "machin"</a>


Non ?

Exemple : http://sentrais.fr/sonoriser/sonoriser1.htm#comment
Modifié par zebulin (06 Jun 2011 - 19:10)
Modérateur
Bonjour Zebulin,

Oui et non. Forcer l'utilisateur à dézipper chaque document peut devenir vite désagréable, surtout lorsqu'on veut simplement forcer le téléchargement d'un PDF ou d'une image.
Tony Monast a écrit :
Bonjour Zebulin,

Oui et non. Forcer l'utilisateur à dézipper chaque document peut devenir vite désagréable, surtout lorsqu'on veut simplement forcer le téléchargement d'un PDF ou d'une image.


En effet !

nounou85 évoque "des documents". Ceci ne constitue-t-il pas une imprécision qui nous égare ? Qu'entend-il par "documents" au juste ?
Eh oui toute la question est là ... si ce sont des documents qui se téléchargent par défaut , enfin qui demandent , la solution classique convient parfaitement sinon cela se discute suivant ce que l'on souhaite proposer au visiteur ...
et la solution proposée par lddsoft peut alors être utile , merci d'ailleurs pour le script Smiley smile
@nounou85

La solution que je propose est la seule à mon sens à répondre à ce que tu souhaites. Il faut bien sûr disposer de PHP.
Tu aurais dû, il est vrai, préciser le(s) type(s) de fichiers que tu veux mettre en téléchargement.
Bien à toi!
Modifié par lddsoft (07 Jun 2011 - 17:46)
bjr et merci à tous pour l'attention que vous avez donné pour mon sujet
en fait ce sont des dossiers contenant des fichiers pdf, et je voulais quand l'utilisateur ouvre un dossier, il aura la possibilité d'ouvrir et de telecharger les fichiers pdf qui sont dedont.
j'ai fait le code que vous m'avez donné, dejà les dossier ne s'affichent pas sous forme d'icone mais sous forme de liens et aussi quand je clique dessus pour acceder aux fichier qui sont dedont il m'affiche la page suivant:

Index of /espace_franchise/bibliotheque/PDFformuledanimation/indexformule
Name Last modified Size Description

--------------------------------------------------------------------------------

Parent Directory -
plaquette complete.pdf 01-Sep-2010 17:37 16M

--------------------------------------------------------------------------------


Apache/2.2.3 (Debian) mod_fcgid/2.3.5 mod_python/3.2.10 Python/2.4.4 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8 Server at www.monsite.fr Port 80


sachant que " plaquette complete.pdf " est le nom du fichier qui est à l'interieur du dissier que je viens d'ouvrir!!
svp qlq'un a une idée comment je peux resoudre ce prob!! merci d'avance
Modifié par nounou85 (08 Jun 2011 - 09:37)
Bonjour,
Si tu veux permettre l'accès à des dossiers de ton site pour y télécharger des documents, il vaudrait mieux utiliser le FTP.
Tu peux aussi proposer, sur une simple page web correspondant à un dossier, la liste des fichiers (pdf) téléchargeables (selon la méthode que je t'ai proposée).
merci pour vos reponses; mais je voudrais savoir pourquoi il m'affiche:
Apache/2.2.3 (Debian) mod_fcgid/2.3.5 mod_python/3.2.10 Python/2.4.4 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8 Server at www.monsite.fr Port 80

en fait quand tu m'a parlé de FTP , c'est à dire je vais mettre mes fichiers sur le serveur avec FTP c'est ça? ça je l'avais fait dejà!!
Modifié par nounou85 (08 Jun 2011 - 14:05)
Je me doute bien que tu as uploadé tes fichiers par client FTP. Ce que je voulais dire c'est que tu peux permettre aux visiteurs de télécharger ces fichiers par FTP (une petite recherche sur Google s'impose là, car il faut assurer la sécurité du site).

Autrement, il reste la solution proposée par Arialia : tu crées sur ton site un dossier nommé par exemple "telechargements" dans le quel tu places les fichiers à télécharger en leur donnant des noms significatifs. Sur une page tu places le lien < a href="telechargmeents/">Page de téléchargements</ a>. Quand l'utilisateur va cliquer sur le lien, il verra tout le contenu du dossier "telechargements" et n'aura plus qu'à choisir ce qui l'intéresse.

En ce qui concerne le message d'Apache, je ne vois pas trop, c'est pas mon truc. Désolé.
Modifié par lddsoft (08 Jun 2011 - 15:34)
Et si jamais tu ne peux pas lister les fichiers vérifie s'il y a la ligne suivante dans un des .htaccess du répertoire concerné ou de ses ascendants
Options -Indexes


si des restrictions de listage de répertoires ont été mises par cette option, tu peux la désactiver pour le répertoire concerné en mettant ces lignes dans le fichier .htaccess du répertoire :
Options +Indexes
IndexOptions +FancyIndexing
 

Il est même possible de mettre une entête personnalisée en créant un fichier HEADER.html dans le répertoire cf doc apache http://httpd.apache.org/docs/2.3/fr/mod/mod_autoindex.html
@nounou85

Vraiment, je ne vois pas en quoi le script que je t'ai proposé le 05 juin 11 à 14:09:22 (pour ne pas confondre avec le premier) ne te conviendrait pas. Il fait exactement ce que tu attends, c'est-à-dire, permettre à tes visiteurs d'ouvrir et/ou de télécharger des fichiers pdf.
bnsr, merci pour vos reponses.
j'ai crée le fichier telecharger.php et aussi .htaccess mais j'arrive pas à trouver ou je peux inserer le code suivant :
href="telecharger.php?Fichier=exemple.zip&chemin=telechargement/">exemple</a>

dans mon script:
 <?php
$dir_nom = 'bibliotheque'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.'  --> ('point')
$dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant
$ifichier= array(); // on déclare le tableau contenant le nom des fichiers
$dossier= array(); // on déclare le tableau contenant le nom des dossiers

while($element = readdir($dir)) {
	//if($element != '.' && $element != '..') {
		if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
		else {$dossier[] = $element;}
	}
//}

closedir($dir);




$hide = Array('.','..');
if(!empty($dossier)) {
	sort($dossier); // pour le tri croissant, rsort() pour le tri décroissant
	echo "<b><h3>Voici les dossiers accessibles de la '$dir_nom' : \n\n</h3></b>";
	echo "\t\t\n";
	
		foreach($dossier as $lien){
			if(in_array($lien, $hide))
            continue;
			echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n";
		}
	echo "\t\t";
}



?>

je vous remercie infiniment pour votre aide!!
Modifié par nounou85 (08 Jun 2011 - 22:17)
Comme dit dans un de tes nombreux autres sujets ouverts, le mieux serait sans doute de commencer par les bases du html avant de poursuivre vers des techniques plus avancées... Le but n'est pas de demander le code et faire un copier coller mais bien de le comprendre et pouvoir l'écrire toi même. Or ici je ne vois pas comment tu peux comprendre le php qui t'a été fourni si tu ne vois pas comment ajouter un lien dans une page html...