Récupérer des fichiers de mysql avec du php

Fermé
Utilisateur anonyme - Modifié par natier le 1/07/2012 à 23:24
 Utilisateur anonyme - 5 juil. 2012 à 16:46
Bonjour,

J'essaye de réaliser un site web ou je met différente ressources en ligne. Pour cela, j'ai créer une base de donnée qui contient plusieurs et dans chacune le nom du fichier et le fichier. J'ai créer un script php pour récupérer les informations met j'ai un problème: j'arrive a récupérer correctement le nom du fichier mais pas le fichier. Tout le fichier s'affiche avec des caractère en plus. Je voudrai pouvoir mettre un lien qui permet de télécharger ou bien d'ouvrir le fichier.

Merci de votre aide


3 réponses

Utilisateur anonyme
4 juil. 2012 à 14:46
si j'enregistre le lien vers mes cours, je ne pourai pas ouvrir directement mes cours, sa m'ouvrira d'abord le répertoire et après je serai oubligé de cliquer sur le cour pour l'ouvrir? Moi je ve pouvoir ouvrir directement mon cours depui le site web.
1
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
4 juil. 2012 à 16:00
Non, tu ne mets pas le lien vers le repertoire, mais vers le fichier !
Genre fichiers/cours/cours_num_1.pdf

Certains fichiers, comme Word (Je crois), quand tu clique sur le lien, au lieu de s'ouvrir, ils se téléchargent, c'est possible d''y remédier, mais je sais pas comment !
0
Utilisateur anonyme
4 juil. 2012 à 16:05
c ce que je voudrai faire, pouvoir ouvrir ou télécharger le fichier
0
Utilisateur anonyme
4 juil. 2012 à 16:33
J'a mi mon lien du répertoire dans ma base car je c pas coment metre celui du fichier et dans mon site web, quand je clic dessus il ne se passe rien
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 4/07/2012 à 17:05
I repeat !
C'est pas le lien du répertoire que tu dois mettre dans ta BD, c'est le lien vers ton fichier !
Ou juste le nom du fichier !

1 - Tu mets le lien absolu !
Dans ta BD, tu mets le lien complet, Exemple :
http:tonsite.com/fichiers/cours/nom_du_fichier1.pdf

Et lors de l'affichage des liens, tu mets direct !
<?php 
while($donnees = mysql_fetch_array($req)) { 
  echo '<a href="'.$donnees['lien'].'">'.$donnees['nom'].'</a>'; 
} 
?>



2 - Tu mets le lien relatif !
Exemple : fichiers/cours/nom_du_fichier1.pdf

Et lors de l'affichage des liens, tu mets !
<?php 
while($donnees = mysql_fetch_array($req)) { 
  echo '<a href="http://www.tonsite.com/$donnees['lien'].'">'.$donnees['nom'].'</a>'; 
} 
?>


3 - Tu mets juste le nom du fichier !
Dans le champs lien de ta BD, tu aura Exemple : nom_du_fichier1.pdf

Et lors de l'affichage, tu mets ...
<?php 
while($donnees = mysql_fetch_array($req)) { 
  echo '<a href="http://tonsite.com/fichiers/cours/'.$donnees['lien'].'">'.$donnees['nom'].'</a>'; 
} 
?>


Conseil, la dernière implémentation est la meilleure ...
1 - Parce qu'elle sera plus fluide en cas ou tu voudra changer le répertoire ou tu enregistre tes cours , car il suffira de changer l'adresse lors de l'affichage ...

2 - Ta base de données sera moins chargé, car au lieu de stocker une adresse absolu qui comporte au moins 40 caractères, tu tu contentera de (au plus) 10 caractères seulement !

Remarque : Il n'est pas obligatoire de mettre le lien absolu lors de l'affichage, c'est possible de mettre ceci :
<?php 
while($donnees = mysql_fetch_array($req)) { 
  echo '<a href="./fichiers/cours//'.$donnees['lien'].'">'.$donnees['nom'].'</a>'; 
} 
?>


Sauf que ça dépend de l'emplacement de la page appelante !
0
Utilisateur anonyme
4 juil. 2012 à 21:40
donc ce lien là que j'ai mi sa va pas puisque c juste le lien du répartoire: C:\Program Files\EasyPHP-5.3.3.1\www\Terminale\Anglais
je doit ajouter le nom du cours juste après?
0
aladin07 Messages postés 277 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 30
2 juil. 2012 à 00:13
N'enregistre jamais un fichier directement dans ta base de données. Enregistre le plutot dans un dossier puis mets le chemin du dossier dans la basse données, php ensuite récupera le chemin de ce fichier et tu pourras l'utiliser.
0
Utilisateur anonyme
2 juil. 2012 à 14:28
J'ai déjà enregistrer mes fichiers dans la base de données, tu connait pas quand même le code php pour récupérer les fichiers et pour pouvoir les ouvrir depuis une page web
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
2 juil. 2012 à 16:27
Salut !
Quelle genre de fichiers, et qu'est ce que tu entend par "enregistrer mes fichier dans la BD" ?
0
Utilisateur anonyme
2 juil. 2012 à 18:10
dans ma base g créer une table anglais avec le nom de mes cours et à chaque nom est associé un fichier, il s'agit d'un champ de type blod
je vroudrai créer un tableau sur mon site web qui me retourne tous mes cours avec leurs nom (sa c bon) et le fichier que je souhaite faire apparaitre en lien hypertexte pour pouvoir l'ouvrir quand je clic dessus
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
2 juil. 2012 à 19:38
de type BLOB, qui veut dire que c'est du texte !!
0
Utilisateur anonyme
2 juil. 2012 à 20:29
qui permet de rechercher le fichier
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 2/07/2012 à 21:42
- Soit tu stocke le contenu des tes cours dans ce champs de typle BLOB, sous forme de texte !
- Soit, comme ça a été dit plus haut, tu enregistre tes cours dans un répertoire du site, sous forme de PDF ou Fichier WORD ..., et tu enregistre seulement le lien(chemin) vers les cours !

Enregistrer ton fichier sous forme binaire dans ta BD est une très mauvaise idée, car ça surchargera et alourdira tes requêtes !
A éviter !
0