Image et base de données
mimi8210
Messages postés
178
Statut
Membre
-
mimi8210 Messages postés 178 Statut Membre -
mimi8210 Messages postés 178 Statut Membre -
Bonjour,
Est ce que quelqu'un peut expliquer à une débutante comment enregistrer une image dans une base de données à partir d'un formulaire. (Puis comment l'afficher par la suite.) Sachant que mon formulaire contient d'autres informations (que je sais traiter), et que j'ai déjà insérer une zone de texte avec un bouton parcourir qui fonctionne (recherche le fichier sur l'ordi de l'utilisateur puis après validation, affichage du chemin dans la zone de texte.):
J'ai déjà fais des recherches sur différents forums mais les explications sont vraiment complexes pour moi, d'autant plus que j'ai remarqué que cette manipulation nécessite plusieurs fichier.php =S
Je vous remercie par avance pour votre aide.
(Je travaille avec easyphp)
Est ce que quelqu'un peut expliquer à une débutante comment enregistrer une image dans une base de données à partir d'un formulaire. (Puis comment l'afficher par la suite.) Sachant que mon formulaire contient d'autres informations (que je sais traiter), et que j'ai déjà insérer une zone de texte avec un bouton parcourir qui fonctionne (recherche le fichier sur l'ordi de l'utilisateur puis après validation, affichage du chemin dans la zone de texte.):
J'ai déjà fais des recherches sur différents forums mais les explications sont vraiment complexes pour moi, d'autant plus que j'ai remarqué que cette manipulation nécessite plusieurs fichier.php =S
Je vous remercie par avance pour votre aide.
(Je travaille avec easyphp)
A voir également:
- Image et base de données
- Fuite données maif - Guide
- Base de registre - Guide
- Image iso - Guide
- Supprimer les données de navigation - Guide
- Supprimez les composantes rouge et verte de cette image. quel mot apparaît ? ✓ - Forum Photoshop
7 réponses
Oui ok, mais comment coder pour faire en sorte que l'image de l'utilisateur s'enregistre dans un de mes fichiers de mon ordinateur ?
J'ai mis "à la main" deux images dans mon fichier, dont j'ai enregistré les noms dans ma BDD tels que la table: PUBLICITE(nomimage, active) et voici mon code pour afficher dans mon div l'image selectionnée dans ma BDD:
Je vois que ça ne fonctionne pas car aucune image n'est affichée, cependant il n'y a aucun message d'erreur qui apparaît...
J'ai mis "à la main" deux images dans mon fichier, dont j'ai enregistré les noms dans ma BDD tels que la table: PUBLICITE(nomimage, active) et voici mon code pour afficher dans mon div l'image selectionnée dans ma BDD:
$reqpub=mysql_query("SELECT nomimage FROM PUBLICITE WHERE active='oui';") or die ("Erreur requete: ".mysql_error());
if ($reqpub=="")
{
$reqpub="bannierepub.jpg";
}
<div id="en_tete">
<img src="<?php echo $reqpub; ?> " width="80%">
</div>
Je vois que ça ne fonctionne pas car aucune image n'est affichée, cependant il n'y a aucun message d'erreur qui apparaît...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Commençons par le commencement, je veux enregistrer mon image dans ma BDD. Voici le code qui doit être traité après validation du formulaire (le formulaire récupère le chemin pour la bannière à enregistrer) :
<?php
require('connexionBDD.php');
if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = 'sitemilie'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['photo']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
echo 'Le fichier est introuvable';
?>
<input type="button" value="Retour" onclick="window.location.replace('gestionpub.php')"/>
<?php
exit;
}
// on vérifie maintenant l'extension
$type_file = $_FILES['photo']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png'))
{
echo "Le fichier n'est pas une image.";
?>
<input type="button" value="Retour" onclick="window.location.replace('gestionpub.php')"/>
<?php
exit;
}
// on copie le fichier dans le dossier de destination
$name_file = date('Y-m-d H:i:s');
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
echo 'Impossible de copier le fichier dans $content_dir';
?>
<input type="button" value="Retour" onclick="window.location.replace('gestionpub.php')"/>
<?php
exit;
}
else
{
mysql_query("INSERT INTO PUBLICITE VALUES ('$name_file','non');")or die ("Erreur requete: ".mysql_error());
echo "Le fichier a bien été téléchargé";
?>
<input type="button" value="Retour" onclick="window.location.replace('gestionpub.php')"/>
<?php
}
}
?>
Qu'est ce qui ne va pas dans ce code ? Quand je valide mon formulaire, voici les messages d'erreur affichés :
Warning: move_uploaded_file(sitemilie2010-05-25 11:05:15) [function.move-uploaded-file]: failed to open stream: Invalid argument in E:\SiteEmilie\telechargementbanniere.php on line 34
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Program Files\EasyPHP5.3.0\tmp\php33D.tmp' to 'sitemilie2010-05-25 11:05:15' in E:\SiteEmilie\telechargementbanniere.php on line 34
Impossible de copier le fichier dans $content_dir
<?php
require('connexionBDD.php');
if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = 'sitemilie'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['photo']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
echo 'Le fichier est introuvable';
?>
<input type="button" value="Retour" onclick="window.location.replace('gestionpub.php')"/>
<?php
exit;
}
// on vérifie maintenant l'extension
$type_file = $_FILES['photo']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png'))
{
echo "Le fichier n'est pas une image.";
?>
<input type="button" value="Retour" onclick="window.location.replace('gestionpub.php')"/>
<?php
exit;
}
// on copie le fichier dans le dossier de destination
$name_file = date('Y-m-d H:i:s');
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
echo 'Impossible de copier le fichier dans $content_dir';
?>
<input type="button" value="Retour" onclick="window.location.replace('gestionpub.php')"/>
<?php
exit;
}
else
{
mysql_query("INSERT INTO PUBLICITE VALUES ('$name_file','non');")or die ("Erreur requete: ".mysql_error());
echo "Le fichier a bien été téléchargé";
?>
<input type="button" value="Retour" onclick="window.location.replace('gestionpub.php')"/>
<?php
}
}
?>
Qu'est ce qui ne va pas dans ce code ? Quand je valide mon formulaire, voici les messages d'erreur affichés :
Warning: move_uploaded_file(sitemilie2010-05-25 11:05:15) [function.move-uploaded-file]: failed to open stream: Invalid argument in E:\SiteEmilie\telechargementbanniere.php on line 34
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Program Files\EasyPHP5.3.0\tmp\php33D.tmp' to 'sitemilie2010-05-25 11:05:15' in E:\SiteEmilie\telechargementbanniere.php on line 34
Impossible de copier le fichier dans $content_dir