Ajouter un fichier dans base PHPmyadmin

Résolu/Fermé
turki chaima Messages postés 13 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 23 avril 2014 - 3 mars 2014 à 12:16
turki chaima Messages postés 13 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 23 avril 2014 - 3 mars 2014 à 16:33
Bonjour,
je veux ajouter des fichiers dans une base de données en phpmyadmin ,, voici le code que j'ai utilisé , lorsque je clique sur le bouton "Envoyer" rien ne s'affiche et rien ne s'ajoute dans la base de données ,, j'ai pas pu identifier donc l'erreur , slvp aidez moi :'(
<?php
//La classe FileFromDBAfin de manipuler les fichiers stockées dans la base de données

class FileFromDB {
private $filename;
public function __construct($filename) {
$this->filename = $filename;
}
//La méthode FileFromDB::upload();;une méthode permettant d'enregistrer notre fichier comme un objet large binaire au sein de notre table.

public function upload($file) {
global $PDO;

$stmt = $PDO->prepare("INSERT INTO moninterface.file (name, type, data) VALUES (?, ?, ?)");}
$stmt->bindParam(1, $this->filename);
$stmt->bindParam(2, $file['type']);
$stmt->bindParam(3, fopen ($file['tmp_name'], 'rb'), PDO::PARAM_LOB);
return $stmt->execute();
}
}

?>


<?php
//le formulaire php

$dbhost = "localhost";
$dbname = "moninterface";
$dbuser = "root";
$dbpass = "sagemcom";


// database connection

$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
if (!$conn)
{
echo "Connexion impossible \n";
exit;
}
$message = null;
if (isset($_FILES['myFile'])) {
$File = new FileFromDB($_FILES['myFile']['name']);
$File->upload($_FILES['myFile']);
$message = 'Votre fichier à bien été ajouté';
}

?>
<html>
<head>
<title>Upload</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<?php echo $message; ?>
<fieldset>
<legend>Charger un fichier</legend>
<p>
<label for="myFile">Fichier</label>
<input type="file" id="myFile" name="myFile" />
</p>
<p>
<input type="reset" value="Annuler" />
<input type="submit" name ="Envoyer" id="Envoyer" value="Envoyer" />
</p>
</fieldset>
</form>
</body>
</html>
A voir également:

3 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 3/03/2014 à 13:58
Bonjour,

Il y a une accolade bizarre à la fin de la ligne
$PDO->prepare(...)


Il faudrait la supprimer.

Ensuite, dans ta classe, tu mets
global $PDO;
, mais dans la suite tu définis
$conn = new PDO(...);


Donc ce serait plutôt
global $conn;
, non ?

Xavier
0
turki chaima Messages postés 13 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 23 avril 2014
3 mars 2014 à 14:06
oui j'ai déjà supprimé l'accolade et changé global $PDO par global $conn; mais je tombe dans le même problème : je clique sur envoyer et rien ne s'ajoute dans la base
0
turki chaima Messages postés 13 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 23 avril 2014
3 mars 2014 à 16:33
j'ai trouvé la faute :p j'ai oublié de créer le champ "data" dans le tableau de la base de données :p :p
0