Mettre le nom d'un fichier dans une bdd
Résolu
valens1460
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
hharchi9 Messages postés 567 Date d'inscription Statut Membre Dernière intervention -
hharchi9 Messages postés 567 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voilà mon idée: je souhaite uploader un fichier en mettant son nom et le nom du dossier(pour le moment toujours le même) dans la bdd, pour l'upload c'est ok, mais mes variables ne rentre pas dans ma bdd, et la je comprend pas car c'est un simple INSERT
voilà de code pour voir le soucis:
voilà mon idée: je souhaite uploader un fichier en mettant son nom et le nom du dossier(pour le moment toujours le même) dans la bdd, pour l'upload c'est ok, mais mes variables ne rentre pas dans ma bdd, et la je comprend pas car c'est un simple INSERT
voilà de code pour voir le soucis:
<?php
$dossier = 'galerie/';
$fichier = basename($_FILES['fichier']['name']);
$taille_maxi = 26214400;
$taille = filesize($_FILES['fichier']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.docx', '.doc', '.xls', '.xlsx', '.text', '.rar', '.PNG');
$extension = strrchr($_FILES['fichier']['name'], '.');
include("bdd.php");
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
// header ('Location: membre.php');
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
$req = $bdd->prepare('INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(?, ?)');
$req->execute(array($fichier,$dossier));
echo 'Upload effectué avec succès !';
var_dump($fichier);var_dump($dossier);
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
<?php include('session.php'); ?>
<!DOCTYPE html>
<html>
<?php include("Head.php"); ?>
<body>
<?php include("header.php");
var_dump($fichier);var_dump($dossier);?>
<section>
<p id="index">Voulez vous ajouter un fichier?<br/>
25Mo maximum!</p>
<form method="POST" action="modif_galerie.php" enctype="multipart/form-data">
<!-- Le contenu du formulaire est à placer ici... -->
<input type="hidden" name="MAX_FILE_SIZE" value="26214400">
Fichier :<input type="file" name="fichier">
<input type="submit" name="envoyerfichier" value="Envoyer le fichier">
</form>
</section>
<?php echo $fichier; ?>
<?php include("piedpage.php"); ?>
</body>
</html>
A voir également:
- Mettre le nom d'un fichier dans une bdd
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
Bonsoir,
Essayez ceci :
Essayez ceci :
$req = $bdd->prepare('INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(nom_image=:nom_image, nom_dossier=:nom_dossier)'); $req->execute(array( ':nom_image' => $fichier, 'nom_dossier' => $dossier));
Alors il faut en spécifier une lors de la requête d'insertion !
Ce qui donne :
Ce qui donne :
$req = $bdd->prepare('INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(nom_image=:nom_image, nom_dossier=:nom_dossier, ordre=:ordre)'); $req->execute(array( ':nom_image' => $fichier, ':nom_dossier' => $dossier, ':ordre' => '0'));
Essayez ceci :
$sql='INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(nom_image=:nom_image, nom_dossier=:nom_dossier, ordre=:ordre)'; $params=array( ':nom_image' => $fichier, ':nom_dossier' => $dossier, ':ordre' => '0'); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); }catch(Exception $e){ die('Erreur : '.$e->getMessage()); }
Ceci donne-t-il toujours la même chose ?
$sql='INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(nom_image=:nom_image, nom_dossier=:nom_dossier, ordre=:ordre)'; $params=array( ':nom_image' => $fichier, ':nom_dossier' => $dossier, ':ordre' => 0); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); }catch(Exception $e){ die('Erreur : '.$e->getMessage()); }
et pas comme ça non plus: