Enregistrer un fichier dans la base de données
java99
Messages postés
12
Statut
Membre
-
java99 Messages postés 12 Statut Membre -
java99 Messages postés 12 Statut Membre -
je souhaite enregistré un fichier dans la base et ces fichiers st stockées dans le serveur. kan je fai sa enregistre juste le nom du fichier mais pas le contenu
1 réponse
-
Bonjour,
Tout d'abord, je vous déconseille d'enregistrer directement le fichier dans la base de données. Préférez enregistrer le chemin d'accès au fichier sur le serveur (qui est beaucoup moins lourd !).
Sinon, lorsque vous avez un problème avec un script, il est préférable de le donner pour que l'on puisse voir ce qui ne va pas,
Cordialement,
hharchi9.-
-
$cv=$_FILES['cv'];
$motivation=$_FILES['motivation'];
$demande=$_FILES['demande'];
//echo "test1";
if(isset($cv) && isset($motivation) && isset($demande))
{
$infos = pathinfo($cv['name']);
$infos1 = pathinfo($motivation['name']);
$infos2 = pathinfo($demande['name']);
$extension_upload = $infos['extension'];
$extension_upload1 = $infos1['extension'];
$extension_upload2 = $infos2['extension'];
$extensions_autorisees = array('jpg','pdf','txt','docx');
/*$File = new FileFromDB($_FILES['file']['name']);
$File->upload($_FILES['file']);
$message = 'Votre fichier à bien été ajouté';
echo "test2";*/
if(in_array($extension_upload ,$extensions_autorisees) && in_array($extension_upload1 , $extensions_autorisees) && in_array($extension_upload2 , $extensions_autorisees))
{
if($cv['size']<=100000000 || $motivation['size']<=100000000 || $demande<=100000000)
{
move_uploaded_file($cv['tmp_name'],"../fichier/".$cv['name']);
move_uploaded_file($motivation['tmp_name'],"../fichier/".$motivation['name']);
move_uploaded_file($demande['tmp_name'],"../fichier/".$demande['name']);
$doc=new Document(4,$_SESSION['id'],4,null,null,null,null,$cv.",".$motivation.",".$demande);
$docu=new DocumentDAO();
$docu->Add($doc);
$prod="CALL sp_suiviaction_insert('".$_SESSION['id']."')";
mysql_query($prod);
?><script>alert('Docoment envoye avec success');
window.parent.location = "services.php";
</script>
<?php
}
else
{
?><script>alert('Docoment trop gros');
window.parent.location = "services.php";
</script>
<?php
}
}
else
{
?><script>alert('Vous n''avez pas entré l''extension demandé');
window.parent.location = "stage.php";
</script>
<?php
}
}
else
{
?><script>alert('Aucun fichier selectionner');
window.parent.location = "stage.php";
</script>
<?php
}
voici le script que j'utilise -
Il suffit d'ajouter le script de connexion à la bdd en haut (ici en PDO):
try { // On se connecte à MySQL $bdd = new PDO(sprintf('mysql:host=%s;dbname=%s', $host, $dbname), $user, $pass); //paramètres à définir ! $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); }
Après l'upload, on fait une requête :
$chemin="../fichier/".$motivation['name']; $query=$bdd->prepare('INSERT INTO table (nom,chemin) VALUES (:nom, :chemin)'); $query->execute(array( ':nom' => $nom, ':chemin' => $chemin)); $query->CloseCursor(); //On ferme le curseur
A toi d'adapter le code à ton script
-