Récupérer le nom d'une photo
Résolu
Sfc2000
-
BoOst -
BoOst -
Bonjour,
J'ai trouvé un script qui me permets d'uploader une photo sur le server ca marche bien sauf que pour corser la chose, j'aimerais que le nom du fichier uploader s'inscrive dans une base.
Pouvez vous m'aider?
Voici mon script :
Mes autres données (Nom et Prix son récupérer dans la base, mais j'ai beau triffouiller le code dans tous les sens, je ne suis apparment pas assez bon pour récupérer le nom du fichier uploader pour le mettre dans la base.
Merci d'avance pour vos réponses
J'ai trouvé un script qui me permets d'uploader une photo sur le server ca marche bien sauf que pour corser la chose, j'aimerais que le nom du fichier uploader s'inscrive dans une base.
Pouvez vous m'aider?
Voici mon script :
<? require "includes/ezine_db.inc.php"; $ezine_db = ezine_connecte_db(); ?> <?php mysql_query("INSERT INTO Article (Id,Nom,Prix,NomPhoto) VALUES ('','$Nom','$Prix','$NomPhoto') ") or die ("erreur insert ".mysql_error()); mysql_close(); $poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets) $repertoire = 'images/photos/'; // Repertoire d'upload if (isset($_FILES['fichier'])) { // On vérifit le type du fichier if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/JPG' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif') { $erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .'; } // On vérifit le poids de l'image elseif ($_FILES['fichier']['size'] > $poids_max) { $erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.'; } // On vérifit si le répertoire d'upload existe elseif (!file_exists($repertoire)) { $erreur = 'Erreur, le dossier d\'upload n\'existe pas.'; } // Si il y a une erreur on l'affiche sinon on peut uploader if(isset($erreur)) { echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>'; } else { // On définit l'extention du fichier puis on le nomme par le timestamp actuel if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; } if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; } if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.JPG'; } if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; } if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; } $nom_fichier = time().$extention; // On upload le fichier sur le serveur. if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier)) { $url = 'www.documentmateriel.ch/'.$repertoire.''.$nom_fichier.''; echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">'; } else { echo 'L\'image n\'a pas pu être uploadée sur le serveur.'; } } } else { ?> <div align="left" class="body"> <form method="post" enctype="multipart/form-data"> <table border="0" cellpadding="0" cellspacing="0" class="texte"> <tr> <td> </td> <td class="texte"> </td> </tr> <tr> <td>Nom : </td> <td class="texte"><input name="Nom" type="text" /></td> </tr> <tr> <td>Prix :</td> <td class="texte"><input name="Prix" type="text" /></td> <tr class="texte"> <td colspan="2" align="center"><input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max; ?>"><input type="file" name="fichier"></td> </tr> <tr class="texte"> <td colspan="2" align="center"><input type="submit" name="submit" value="Valider" /></td> </tr> </table> </form> </div> <?php } ?>
Mes autres données (Nom et Prix son récupérer dans la base, mais j'ai beau triffouiller le code dans tous les sens, je ne suis apparment pas assez bon pour récupérer le nom du fichier uploader pour le mettre dans la base.
Merci d'avance pour vos réponses
A voir également:
- Récupérer le nom d'une photo
- Google photo - Télécharger - Albums photo
- Recuperer photo google photo - Guide
- Recuperer message whatsapp supprimé - Guide
- Comment recuperer une video sur youtube - Guide
- Récupérer photo instagram - Guide
3 réponses
Salut,
Dans ta requete SQL, je ne comprends pas d'où provient ta variable "$NomPhoto" ?!
Alors lorsqu'un fichier est uploadé, il n'existe réellement qu'après avoir été déplacé du dossier temporaire vers le dossier final, ce que tu fait dans cette partie :
Le nom du fichier d'origine n'est pas conservé dans ton code, tu lui génère un nouveau nom de type "1023453763.jpg", il vaut mieux donc faire ta requete sql dans ce bloc IF, car avant cela tu ne conais pas le nom et le fichier peut etre refusé (trop gros, etc..)
Voila ce que ca donnerai :
ps : Pas la peine de fermer la connexion sql avec "mysql_close", ca se fait tout seul a la fin de page.
Dans ta requete SQL, je ne comprends pas d'où provient ta variable "$NomPhoto" ?!
Alors lorsqu'un fichier est uploadé, il n'existe réellement qu'après avoir été déplacé du dossier temporaire vers le dossier final, ce que tu fait dans cette partie :
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; } if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; } if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.JPG'; } if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; } if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; } $nom_fichier = time().$extention; // On upload le fichier sur le serveur. if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier)) { $url = 'www.documentmateriel.ch/'.$repertoire.''.$nom_fichier.''; echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">'; }
Le nom du fichier d'origine n'est pas conservé dans ton code, tu lui génère un nouveau nom de type "1023453763.jpg", il vaut mieux donc faire ta requete sql dans ce bloc IF, car avant cela tu ne conais pas le nom et le fichier peut etre refusé (trop gros, etc..)
Voila ce que ca donnerai :
// On upload le fichier sur le serveur. if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier)) { // *** a partir d'ici, le fichier est réellement crée sur le serveur, sous le nom "$repertoire.$nom_fichier" mysql_query("INSERT INTO Article (Id,Nom,Prix,NomPhoto) VALUES ('','$Nom','$Prix','$nom_fichier') ") or die ("erreur insert ".mysql_error()); $url = 'www.documentmateriel.ch/'.$repertoire.''.$nom_fichier.''; echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">'; }
ps : Pas la peine de fermer la connexion sql avec "mysql_close", ca se fait tout seul a la fin de page.