Forums Développement Multimédia

Aller au contenu

Problème d'enregistrement d'une image

CODE PHP MySQL

6 réponses à ce sujet

#1 chouchou1986

    Ceinture Jaune

  • Members
  • PipPip
  • 27 messages

Posté 07 May 2012 - 15:16 PM

Bonjour,
J'ai un code php qui sert à télécharger une image, l'insertion dans la base de données s'effectue avec succès mais je ne trouve pas l'image dans le dossier où j'ai fait l'enregistrement malgré que j'ai mis ' enctype="multipart/form-data" '
Merci d'avance!

#2 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2531 messages

Posté 07 May 2012 - 23:00 PM

Salut,

Sans voir un peu de code, ça va être difficile de t'aider ...
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#3 chouchou1986

    Ceinture Jaune

  • Members
  • PipPip
  • 27 messages

Posté 08 May 2012 - 09:11 AM

Bonjour,
Voici le code d'upload de l'image:


if (isset($_FILES['image']))
{
$image=$_FILES['image'];
$nomimage = $_FILES['image']["name"] ;
$nomTemporaire = $_FILES['image']["tmp_name"] ;
$typeimage = $_FILES['image']["type"] ;
$poidsimage = $_FILES['image']["size"] ;
$codeErreur = $_FILES['image']["error"] ;  
$extension_image = strrchr($nomimage, ".");
$nom_image = basename($_FILES['image']['name']);
$extensions_ok_image = array('gif','GIF','jpeg','JPEG','png','PNG');
$repertoire_image="/img/equipements/";
$filename_image=filesize($_FILES['image']['tmp_name']);

$extension_image= strrchr($nomimage, ".");
$nomimage=time().$extension_image;
move_uploaded_file($_FILES['image']['tmp_name'],$repertoire_image.$nomimage);
}
 


#4 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2531 messages

Posté 08 May 2012 - 09:30 AM

Ok, un bon moyen de voir que tout fonctionne est de conditionner l'enregistrement en base de données à la réussite du chargement (upload) de ton image.

tu pourrais ainsi faire :

if ( move_uploaded_file($_FILES['image']['tmp_name'],$repertoire_image.$nomimage) ) {
    //enregistrement en base
}
else
{
   //message d'erreur
    exit( 'Echec du déplacement du fichier dans ' . $repertoire_image.$nomimage ) ;
}
 

Ensuite, pour savoir ce qu'il se passe, tu pourrais prendre en compte les erreurs :

if (isset($_FILES['image']))
{
    //le code d'upload
}
else
{
    // ici tu affiches un message d'erreur, tu pourras ainsi savoir
    // si la variable est bien présente
    // pour le debug :
    var_dump( $_FILES ) ;
}
 

"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#5 chouchou1986

    Ceinture Jaune

  • Members
  • PipPip
  • 27 messages

Posté 08 May 2012 - 13:30 PM

Bonjour,
J'ai utilisé le code précédent et j'ai trouvé que l'upload de l'image ne s'effectue pas et quand j'ai utilisé var_dump ( $_FILES)
voici l'affichage que j'ai eu:



array
  'image' =>
    array
          'name' => string '1.jpg' (length=5)
          'type' => string 'image/jpeg' (length=10)
          'tmp_name' => string 'C:\wamp\tmp\php223.tmp' (length=22)
          'error' => int 0
          'size' => int 37324
 

Qu'est ce que cela veut dire et comment je peux corriger cet erreur
Merci

#6 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2531 messages

Posté 08 May 2012 - 18:57 PM

hum ... tu veux dire que le test suivant ne fonctionne pas ?


if (isset($_FILES['image'])){ }
 

C'est plutôt étrange puisque le var_dump montre que justement il devrait fonctionner ...

Tu peux montrer ton code avec les tests que tu as ajouté ?

... sinon, tentes d'appeler la méthode de déplacement du fichier en mettant le chemin de destination en dur (et en chargeant un jpg) :

il faut bien entendu que le chemin soit valide, peut-être que le slash au début pose problème ?


move_uploaded_file( $_FILES['image']['tmp_name'], "img/equipements/test_image.jpg" );
 

note : lorsque tu postes du code, pense à utiliser les balises dédiées avec le bouton code (celui avec les 2 chevrons : < > )
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#7 chouchou1986

    Ceinture Jaune

  • Members
  • PipPip
  • 27 messages

Posté 09 May 2012 - 09:01 AM

Merci, le code est fonctionnel maintenant, le slash au début était le problème



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP