Lorsque j'essaie d'afficher des images issues de ma BDD, en utilisant leur lien, celle-ci s'affichent uniquement si les images sont rentrées depuis mon PC.
Ce que je sais c'est que j'insère mes images à l'aide d'un lien temporaire, et je voudrais que les liens soient permanants.
L'un des buts de mon site web est que d'autres utilisateurs que moi insèrent des données, dont des images, puis que n'importe qui puisse les visualiser.
Donc si je rentre mon propre lien ce dernier ne correspondra pas à celui des autres.....
On est d'accord pour dire que toutes les images uploadées finissent dans le dossier "images/", peu importe que ce soit toi ou les utilisateurs qui le fassent ?
Si c'est le cas, alors il faut que tu renseignes le lien final dans la base de données au lieu du lien temporaire. Si ces liens ne fonctionnent que sur ton PC, c'est parce que les images que tu mets en ligne se trouvent dans l'un des dossiers de ton navigateur, en local ; et tes utilisateurs auront très certainement le même souci avec les images qu'ils mettront en ligne de leur côté.
Donc, j'insiste sur le fait de déplacer l'insertion dans la base de données après avoir déplacé le fichier dans le dossier "images" (et de remplacer le lien temporaire par le lien définitif).
Bonsoir pour un projet que j'avais eu a faire j'avais fait ceci que je reutilises pour l'upload d'image alors vous pouvez l'utiliser et le modifier un peu.
Bon j'ai reelment fait un copier coller du code que j'avais fait mais vous pouvez en tirer le necessaire
generecode est une fonction qui genere une chaine aleatoire avec le nombre de caractere qu on lui donne de cette maniere tu cree un nom pour chaque image
J'ai testé cette solution, mais le résultat est le même...
Le résultat est le même car ton code source n'a pas été corrigé (si je me fis à ce que tu as reposté). Voici une version plus correcte (côté insertion) :
for ($a=0; $a < $i; $a++) {
if(isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
if ($_FILES['image']['size'][$a] <= 1000000) { // Testons si le fichier n'est pas trop gros
if (in_array(pathinfo($_FILES['image']['name'][$a])['extension'],array('jpg', 'jpeg', 'gif', 'png', 'mp4'))) { // Testons si l'extension est autorisée
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['image']['tmp_name'][$a], 'images/' . basename($_FILES['image']['name'][$a]));
$req = "INSERT INTO `image`(nom_image,taille_image,type_image,lien_image,bin_image,id_bien) VALUES (?,?,?,?,?,?)";
$result = $bdd->prepare($req);
$result->execute(array($_FILES["image"]["name"][$a], $_FILES["image"]["size"][$a],$_FILES["image"]["type"][$a],"images/".$_FILES["image"]["name"][$a], file_get_contents($_FILES["image"]["tmp_name"][$a]), $id_bien));
echo "L'envoi a bien été effectué !";
}
else
echo "ECHOUE";
}
else
echo "TROP LONG";
}
}
Côté affichage, tu appelles le lien de l'image uploadée plutôt que son nom (qui ne devrait pas être un lien, selon ta version).
- Edité par Omiganox 12 octobre 2021 à 18:52:41
[PDO] Affichage de photos
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
yasakani no magatama