Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2986 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] test upload de fichier (resolu)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] test upload de fichier (resolu)

n°773934
cosmoschtr​oumpf
dawa powered
Posté le 23-06-2004 à 10:20:39  profilanswer
 

Bonjour à tous
 
j'ai un problème étrange avec l'upload de fichiers et php.
 
J'ai une base de données de films, et je veux pouvoir associer une jaquette à un film. Cette jaquette est envoyée avec un champ input file.
J'arrive très bien à uploader une jaquette, ça l'enregistre correctement et tout. J'ai une interface qui permet de modifier cette jaquette, et ça marche impec.
Mais seulement quand on envoie une jaquette.
 
Voici le code qui permet d'envoyer la jaquette :
 

Code :
  1. if (isset($_FILES['jaquette']['tmp_name'])) {
  2.   envoi_image($_FILES['jaquette']['tmp_name'], "../images/jaquettes/", $jaquette, 150, 70);
  3. }


 
envoi_image() étant, vous vous en doutez, le script qui écrit l'image sur le serveur.
 
Le problème, c'est que, que je sélectionne une jaquette ou pas, le script fait comme si il en envoyait une, puisque envoi_image teste le format de l'image (ne veut que du jpg) et me dit qu'il est invalide.
 
Je sais pas si j'arrive à bien me faire comprendre, mais si vous comprenez, et surtout que vous avez la solution, n'hésitez pas :)
 
Merci !


Message édité par cosmoschtroumpf le 23-06-2004 à 12:10:56
mood
Publicité
Posté le 23-06-2004 à 10:20:39  profilanswer
 

n°773988
boulax
Inserer phrase hype en anglais
Posté le 23-06-2004 à 10:53:34  profilanswer
 

pas bien compris non .... le code de envoi_image ?


---------------
Posté depuis des chiottes, sales. Me gusta.
n°774044
cosmoschtr​oumpf
dawa powered
Posté le 23-06-2004 à 11:20:10  profilanswer
 

Bon, reprenons.
Mon formulaire a un champ <input type="file">. Je suis censé pouvoir ne pas mettre de fichier dans ce champ, et que ça marche. Mais avec le test plus haut, qu'il y aie un fichier ou pas dans ce champ, le script agit comme si il y avait un fichier.
Mouais, c'est pas forcément plus clair, mais peut-être un peu.
 
Voici envoi_image :
 

Code :
  1. function envoi_image($imageDest, $repDest, $nomDest, $largeurDest, $compression) {
  2.   $tailleImage = getimagesize($imageDest);
  3.   $repTemp = $repDest . "tmp/";
  4.   $nomDest .= ".jpg";
  5.   if ($tailleImage[2] != 2) { // si le type de l'image n'est pas jpeg (type n∞2) : erreur
  6.     die("<p>Les formats autres que le jpg/jpeg ne sont pas support&eacute;s par le serveur.<br />Veuillez enregistrer votre image sous ce format.<br /><a href=\"index-catalogue.php\">Retour</a></p>" );
  7.   }
  8.   if (is_uploaded_file($imageDest)) {
  9.     if (copy($imageDest, $repTemp.$nomDest)) {
  10.       // code original par loic piquart, www.piquart.org
  11.       $image = $repTemp.$nomDest;
  12.       $img = imagecreatefromjpeg($image);
  13.       $taille = getimagesize($image);
  14.       $largeur = $taille[0];
  15.       $hauteur = $taille[1];
  16.       if ($largeur > $largeurDest) {
  17.         $entroplargeur = $largeur - $largeurDest;
  18.         $largeur2 = $largeur - $entroplargeur;
  19.         $hauteur2 = round(($largeur2/$largeur)*$hauteur);
  20.         $img2 = imagecreatetruecolor($largeur2,$hauteur2) or die("<br /><b>Impossible de cr&eacute;er la nouvelle image</b>" );
  21.         imagecopyresized($img2, $img, 0,0,0,0, $largeur2, $hauteur2, $largeur, $hauteur) or die ("<br /><b>Impossible de copier l'image</b>" );
  22.         imagejpeg($img2,$image,$compression) or die ("<br /><b>Impossible de compresser l'image</b>" );
  23.       }
  24.       copy ($image,$repDest.$nomDest) or die("<br /><b>Impossible d'enregistrer l'image $image sur $repDest</b>" );
  25.       unlink($image) or die("<br /><b>Impossible de supprimer le fichier temporaire. V&eacute;rifiez que vous avez bien les droits d'acc&egrave;s.</b>" );
  26.     } else {
  27.       die("<p>La copie du fichier a &eacute;chou&eacute;</p>" );
  28.     }
  29.   } else {
  30.     die("<p>Le fichier n'a pas &eacute;t&eacute; envoy&eacute; (trop gros ? plus d'espace restant ?)</p>" );
  31.   }
  32. }


 
Et donc, lorsque mon input file est vide, j'ai un problème de fichier qui n'est pas un fichier jpg, alors que lorsque je met une image, ça marche impec.
 
J'espère que c'est plus compréhensible :D
 
merci

n°774068
boulax
Inserer phrase hype en anglais
Posté le 23-06-2004 à 11:32:01  profilanswer
 

Teste plutot  
 

Code :
  1. if (isset($_FILES['jaquette']) && $_FILES['jaquette']!= "" ) {
  2.       envoi_image($_FILES['jaquette']['tmp_name'], "../images/jaquettes/", $jaquette, 150, 70);
  3.   }


---------------
Posté depuis des chiottes, sales. Me gusta.
n°774129
cosmoschtr​oumpf
dawa powered
Posté le 23-06-2004 à 12:10:27  profilanswer
 

ok, avec isset($_FILES['jaquette']['tmp_name']) && $_FILES['jaquette']['tmp_name'] != "" ça marche.
 
Merci beaucoup ! :D (même si j'aurais pu réfléchir un peu pour trouver ça [:kiki] )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] test upload de fichier (resolu)

 

Sujets relatifs
[access](RESOLU) savoir si une requête sort un résultat ou non ??[PHP] partager des données sans BDD
[RESOLU]Peut on attraper un utilisateur aleatoirement dans une bdd?[VBS] Copie de fichier
Telnet avec fichier d'argument.probleme de headers et sessions ... RESOLU :)
[Resolu] message d'erreur en javascript[Erreur php] Undefined offset
[PHP] Un CMS pour un club de sport[php]Comment affiche une pop up en php
Plus de sujets relatifs à : [PHP] test upload de fichier (resolu)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR