Comment alimenter une bdd avec des fichiers jpg?

PascalWeb
Invité n'ayant pas de compte PHPfrance

02 mars 2005, 10:45

Pour mon site en php, je veux proposer à mes clients d'insérer 1 photo avec leur annonce. Ainsi je leur demande d'insérer le fichier image .jpg. Mais comment puis-je récupérer cette image au moment de la validation du formulaire pour qu'elle s'intégre dans la bdd et s'enregistre sur le serveur? Et aussi comment l'afficher sur la page d'annonce?
Merci de votre aide

Eléphant du PHP | 334 Messages

02 mars 2005, 10:48

Tu n'enregistres pas "l'image" dans la base de données, tu enregistres "l'adresse" de l'image que tu vas stocké où tu veux sur ton serveur :wink:

Mammouth du PHP | 19672 Messages

02 mars 2005, 10:52

Petit correctif: on peut (techniquement) parfaitement enregistrer une image directement dans une base de données au format binaire : différence ? pas grand chose, ça prend pas plus de place: en revanche effectivement on peut plus facilement enregistrer d'une part l'image dans un répertoire du site et d'autre part les informations sur cette même image dans une table de base de données.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

PascalWeb
Invité n'ayant pas de compte PHPfrance

02 mars 2005, 12:26

merci de votre aide, j'ai réussi à charger une image en utilisant le prog suivant :

<?
$destination= "photos"; //dossier de destination du fichier situé au même niveau que mon fichier .php
$nomfichier = $_FILES["photo"]["name"];
if (is_uploaded_file($_FILES["photo"]["tmp_name"])) {
if (rename($_FILES["photo"]["tmp_name"], $destination.$nomfichier)){
echo '<br>Téléchargement réussi.'; }
else { echo 'Le téléchargement de l\'image a échoué, réessayez !'; }
}
else { echo 'Le téléchargement de l\'image a échoué, réessayez !'; }
?<

seulement j'ai un léger soucis les images ne se sont pas enregistrés dans le dossier photos mais au même niveau que le fichier .php : POURQUOI?

Mammouth du PHP | 19672 Messages

02 mars 2005, 12:35

Il te faut vérifier la valeur de la variable destination: il faut que ce soit une adresse relative par rapport à la page affichée. Si par exemple ta page s'appelle enregistrer.php et que tu veux mettre les images dans un répertoire "images" qui est au même niveau que cette page, la valeur doit être "./images/"
Fais afficher ta variable pour vérifier que la valeur ressemble à ça et si ce n'est pas le cas, fais la modification nécessaire, ça devrait fonctionner.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

02 mars 2005, 13:36

seulement j'ai un léger soucis les images ne se sont pas enregistrés dans le dossier photos mais au même niveau que le fichier .php : POURQUOI?
Et toutes les photos s'appelles "photos....jpg" non ? ;)
Je pense qu'il faut ajouter le "/" final à $destination: $destination.'/'.$nomfichier.

PascalWeb
Invité n'ayant pas de compte PHPfrance

07 mars 2005, 13:25

Merci à Cyrano cela fonctionne