Formulaire avec fichier photo

Répondre
moogli
le 06/07/2007 à 11:06
moogli
tu met le lien vers la photo (ou simplement son nom) dans un champ de ta table qui contient les annnonces .......
Il en faut peu pour être heureux !!!!!
pistoccaz
le 06/07/2007 à 12:17
pistoccaz
il n'y a pas moyen qu'elle s'y inscrive dés l'envoi de la photo?

car si je comprend bien, je dois a chaque fois inscrire le nom de la photo dans la BDD?
pistoccaz
moogli
le 06/07/2007 à 14:59
moogli
ben wé :)

je ne vois pas où cela est contraingant, tu fait un seul insert lors de la création de l'annonce.


@+
Il en faut peu pour être heureux !!!!!
moogli
le 06/07/2007 à 18:36
moogli
et alors ?

un serveur de base de donnée c'est prévue pour traitrer des millions d'entrée par jour ;)

y a peu de chance que tu finisse par écrouler le server !

une autre solution est de nommer explicitement la photo en fonction de quelque chose d'unique sur l'annonce ! (typement la clef primaire de la table). Ceci dit ce n'est pas ce que ça va te prendre en plus de mettre le nom de l'image dans la table qui va tous foutre en l'air. (on parle bien du nom, ou du chemin complet, pas de l'image elle même qui elle est sur le serveur dans le système de fichier).
Il en faut peu pour être heureux !!!!!
pistoccaz
le 08/07/2007 à 09:49
pistoccaz
oui on parle bien du nom ou du chemin,
mais je pensais qu'on pourrait avoir un script qui la place directement.

car j'ai peur de ne pas mettre la bonne photo(nom) au bon endroit.

merci quand même pour le reste.
pistoccaz
Kniva
le 11/06/2010 à 13:36
Kniva
Bonjour, je relance un peu le sujet.
Voila, je me suis servi du script d Moogli et je rencontre un petit problème
Voila le formulaire
<html>
<form name="formu" action="post.php" method="post" enctype="multipart/form-data">
<input type="file" name="fichier" accept="image/jpg" /><br/>
<input type="submit" value="Go !!!!" /></form></html>



et le post.php
<?php
if (isset($_FILES['fichier']))
{
//$_FILES existe on récupère les infos qui nous intéressent
$fichier=$_FILES['fichier']['name'];//nom réel de l'image
$size=$_FILES['fichier']['size']; //poids de l'image en octets
$tmp=$_FILES['fichier']['tmp_name'];//nom temporaire de l'image (sur le serveur)
$type=$_FILES['fichier']['type'];//type de l'image
list($width,$height)=getimagesize($tmp);
if (is_uploaded_file($tmp)) //permet de vérifier si le fichier a été uplodé via http
{
//vérification du type de l'img, son poids et sa taille
if ($type=="image/jpg" && $size<=100000 && $width<=200 && $height<=200 )
{
//Pour supprimer les espaces dans les noms de fichiers car celà entraîne une erreur lorsque vous voulez l'afficher
$fichier = preg_replace ("` `i","",$fichier);//ligne facultative :)
//On vérifie s'il existe une image qui a le même nom dans le répertoire
if (file_exists('./image/'.$fichier))
{
//Le fichier existe on rajoute dans son nom le timestamp du moment pour le différencier de la
//première (comme cela on est sûr de ne pas avoir 2 images avec le même nom :) )
$nom_final= preg_replace("`.jpg`is",date("U").".jpg",$fichier);
}
else {
$nom_final=$fichier; //l'image n'existe pas on garde le même nom
}
//on déplace l'image dans le répertoire final
move_uploaded_file($tmp,'./image/'.$nom_final);
//Message indiquant que tout s'est bien passé
echo "L'image a été uploadée avec succès<br/>";
}
else {
//Le type mime, ou la taille ou le poids est incorrect
echo 'Votre image a été rejetée (poids, taille ou type incorrect)';
}
}
}
//Pour tester si l'image est bien à sa place
echo '<img src="./image/'.$nom_final.'" border="0" />';
echo '<br/>';
?>


Le problème, c'est que j'ai toujours le message d'erreur du code qui s'affiche, me disant que votre image a été rejétée ( poids, taille ou type incorrect).

QU'est ce que j'ai mal changé?
Kniva
le 13/06/2010 à 12:23
Kniva
Moogli, aurais-tu la solution pour que ton code fonctionne sous IE??
En effet, j'ai un problème avec le type mime
Kniva
le 13/06/2010 à 18:17
Kniva
Merci beaucoup pour ta réponse.
J'ai rentré image/pjpg comme tu me l'as indiqué, mais j'avais le même souci.
J'ai donc rajouté un e, donc écrit image/pjpeg et ça fonctionne.
Répondre
LoadingChargement en cours