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

  FORUM HardWare.fr
  Programmation
  PHP

  Echec upload d'une photo via script Php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Echec upload d'une photo via script Php

n°1181931
feer
Posté le 23-08-2005 à 01:11:08  profilanswer
 

J'ai écrit un petit script d'upload en Php pour mon site perso, je fais différent tests, et curieusement il y a des photos (2 ou 3 sur 50) que je n'arive pas a uploader
Les images (JPG) sont issues du même appareil, pas de pb de poids de fichier non plus.
 
Cela vous est-il déjà arrivé ? un JPG corrompu ou un truc dans ce genre ? :-?  
 
merci

mood
Publicité
Posté le 23-08-2005 à 01:11:08  profilanswer
 

n°1181937
dotfx
Posté le 23-08-2005 à 01:20:24  profilanswer
 

Quelle est l'erreur exactement? Le fichier n'arrive pas à être uploadé ou le fichier est uploadé, mais s'affiche mal depuis le serveur?
Peut-être qu'ils sont trop lourds et dépassent le timeout de ta config PHP ?


---------------
www.renderfarm.online
n°1181951
gatsusat
Posté le 23-08-2005 à 03:01:52  profilanswer
 

c'est trop vague comme explication
 
quel type de script ?  
Ce script est-il intégré à une solution de création de site web tout en un (SPIP, PHPNuke)
On peut voir le code de ce script ?
on peut voir les jpeg incriminés qui provoquent le problème ? (stocke les sur imageshack.us)
 
Aller fait un effort

n°1182805
feer
Posté le 23-08-2005 à 22:18:04  profilanswer
 

Voici l'url de l'image => http://membres.lycos.fr/feer/temp/DSCN0002bis.JPG
 
A noter que cette image pese un peu plus de 2Mo et donc devrait normalement etre refusé par le script (image supérieure à 80ko) or le script m'affiche un echec.
En dehors de ça le script fonctionne bien sur les autres photos testées, seule 2 ou 3 sur 50 ne passent pas ...
 
Et le script (2 fichiers)
 
fichier index.php

Code :
  1. <?
  2. include("config.php" );
  3. if(!(isset($submit))){
  4. echo"<form enctype=\"multipart/form-data\" action=\"$PHP_SELF\" method=\"post\">
  5.     <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$sizemax\">
  6.     <input name=\"userfile\" type=\"file\">
  7.     <input type=\"submit\" name=\"submit\" value=\"Envoyer\">
  8.     </form><br>";
  9. }
  10. else
  11.     if(file_exists($dir.$userfile_name)){
  12.         echo"Un fichier ayant le meme nom est deja present";
  13.     }
  14.     elseif($userfile_size>(1024 * 8000)){
  15.         echo"Fichier est trop gros";
  16.     }
  17.     elseif(bad_ext($userfile_name)){
  18.         $verif=substr (strrchr ($userfile_name, "." ), 1 );
  19.         echo"Mauvaise extension";
  20.     }
  21.     else{
  22.         copy($userfile,$dir.$userfile_name);
  23.         if(is_uploaded_file($userfile)){
  24.         echo "Upload réussi";
  25.         }
  26.         else{
  27.             echo "Echec";
  28.         }
  29.     }
  30. }
  31. ?>


 
fichier config.php

Code :
  1. <?
  2. function bad_ext($filename){
  3. global $ext;
  4. $exp=explode(".",$filename);
  5. $nb=count($exp);
  6. for($i=0;$i<$nb;$i++){
  7.    if($exp[($nb-1)]==$ext[$i]){
  8.    return false;
  9.    exit;
  10.    }
  11. }
  12. return true;
  13. }
  14. $ext[0]="gif";
  15. $ext[1]="jpg";
  16. $ext[2]="png";
  17. $userfile_name = str_replace(' ', '_',$userfile_name);
  18. $userfile_name = str_replace('\'', '',$userfile_name);
  19. $userfile_name = strtolower(time()."_".$userfile_name);
  20. elseif (time()<1125525600){
  21. $dir="temp/aout05/";
  22. }
  23. elseif (time()<1128117600){
  24. $dir="temp/sep05/";
  25. }
  26. ?>

n°1182850
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 23-08-2005 à 23:15:45  profilanswer
 

parser les erreurs eventuelles d'upload peut être interessant avec $_FILES['pouetpouet']['error']

n°1182854
omega2
Posté le 23-08-2005 à 23:19:31  profilanswer
 

1024 * 8000
ca fait pas 80 ko chez moi mais presque 8 Mo.
Par contre, si tu dis que tes trois fichiers font un peu plus de 2 Mo, alors j'aurais tendance à dire que soit php est réglé pour refuser les upload de plus de 2 Mo, soit que ton script est réglé ainsi. D'ailleur, elle a quoi comme valeur la constante MAX_FILE_SIZE. ;)

n°1182882
feer
Posté le 24-08-2005 à 00:04:21  profilanswer
 

Non ce n'est pas dans cette direction qu'il faut chercher, j'upload es fichiers plus gros et plus petit que celui-ci également.
Ce n'est pas un probleme de taille.
 
Je suis a peu près persuadé que le pb vient de l'image, mais j'aimerais en etre convaincu ;)
 
Quant au 1024 * 8000 ... ça fait en effet 8 Mo ... c'est un cop/col un peu rapide, je faisais des tests...

n°1182940
Badze
Aime les frites
Posté le 24-08-2005 à 00:59:55  profilanswer
 

il est tres possible que ce soit le serveur qui bloque le upload a 2 mo. Sous Free c'est comme cela, et sous easyphp aussi (par defaut).
J'avais du avoir le meme probleme par rapport a ça.
 
Ou alors tu envoi ca sur ton serveur Web, peut etre que tu a des interruptions de ta connection (supposition).
 
Et si tu est persuader que ce soit tel image précisement, essaye des les uploader 1 par 1, tu verra par toi meme. regarde si c'est toujours la meme image qui est affecter.


Message édité par Badze le 24-08-2005 à 01:00:57
n°1182961
feer
Posté le 24-08-2005 à 01:15:28  profilanswer
 

Je le repete ce n'est pas un probleme de taille, j'upload des photos plus volumineuses, et pas non plus un probleme de time-out.

Citation :

Et si tu est persuader que ce soit tel image précisement, essaye des les uploader 1 par 1, tu verra par toi meme. regarde si c'est toujours la meme image qui est affecter.


 
là aussi je le repete, au risque de devenir lourd :D
 
c'est toujours les memes photos (2 ou 3 sur une cinquantaine de photos)

n°1182979
feer
Posté le 24-08-2005 à 01:28:24  profilanswer
 

je viens d'essayer avec 2 scripts php d'upload ... ça ne marche pas.
c'est donc sur, mon script fonctionne (c'est déjà ça) mais histoire de ne pas mourrir idiot, j'aimerais savoir ce qu'a mon image ? :-/

mood
Publicité
Posté le 24-08-2005 à 01:28:24  profilanswer
 

n°1183279
Badze
Aime les frites
Posté le 24-08-2005 à 12:52:54  profilanswer
 

ba regarde dabord quel images sont concernés meme si c'est lourd, enfin 50 images ,c'est pas la mort.
Mais je trouve ça bizarre, meme une image infecté devrai etre uploadé.

n°1183282
omega2
Posté le 24-08-2005 à 12:56:28  profilanswer
 

Peut être un probléme dans le nom de fichier dans ce cas.

n°1183293
feer
Posté le 24-08-2005 à 13:06:58  profilanswer
 

Citation :

ba regarde dabord quel images sont concernés meme si c'est lourd, enfin 50 images ,c'est pas la mort.


 :heink:  
c'est justement le sujet de ce topic, j'ai 2 ou 3 images qui ne passent, je sais donc par définition quelles images sont concernées.
je ne comprends pas ce que tu veux dire :??:
 

Citation :

Peut être un probléme dans le nom de fichier dans ce cas.


 
non plus, je l'ai renommé, c'est pareil.
 
j'admet que c'est curieux, mais faites le test sur un script d'upload quelconque, vous admettrez le probleme surement plus facilement ;)  
l'image est là => http://membres.lycos.fr/feer/temp/DSCN0002bis.JPG


Message édité par feer le 24-08-2005 à 13:08:23
n°1183474
Badze
Aime les frites
Posté le 24-08-2005 à 15:27:28  profilanswer
 

tente de changer en changeant son format

n°1183488
arylie
Posté le 24-08-2005 à 15:40:59  profilanswer
 

tu as essayé de faire ce que t'a dit pmusa ? (Avec userfile le nom du fichier uploadé)
 

Code :
  1. switch($_FILES['userfile']['error'])
  2.             {
  3.                 case 1 :
  4.                     echo("Le fichier téléchargé excède la taille de upload_max_filesize, configuré dans le php.ini." );
  5.                     break;
  6.                 case 2 :
  7.                     echo("Le fichier téléchargé excède la taille de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML" );
  8.                     break;
  9.                 case 3 :
  10.                     echo("Le fichier n'a été que partiellement téléchargé" );
  11.                     break;
  12.                 case 4 :
  13.                     echo("Aucun fichier n'a été téléchargé" );
  14.                     break;
  15.                 case 6 :
  16.                     echo("Un dossier temporaire est manquant. Introduit en PHP 4.3.10 et PHP 5.0.3" );
  17.                     break;
  18.            
  19.             }

n°1183801
feer
Posté le 24-08-2005 à 22:55:01  profilanswer
 

Badze a écrit :

tente de changer en changeant son format


 
en fait je n'ai pas besoin de changer de format pour arriver a uploader l'image, si je l'ouvre et la sauvegarde (avec Psp par exemple) ça passe.
il y a une vérolle dans cette image, c'est une certitude.
 
je vais aller voir du coté de "Software" pour voir si il n'existe pas un soft permettant de detecter une éventuelle corruption dans le fichier.
 
merci de votre aide

n°1183990
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 25-08-2005 à 10:50:15  profilanswer
 

essaye de l'ouvrir avec le bloc note pour voir si il n'y a pas des mots chelou que tu peux distinguer ou du code eventuellement...


---------------
intralase surgery [:cerveau love]
n°1184200
gatsusat
Posté le 25-08-2005 à 13:59:15  profilanswer
 

et pourquoi pas avec un editeur Hexa, yen a qui pulullent sur le net

n°1184451
feer
Posté le 25-08-2005 à 17:23:51  profilanswer
 

J'ai ouvert avec un éditeur Hexadécimal, rien vu de particulier ... que se soit une iamge qui pass ou ne passe pas.


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

  Echec upload d'une photo via script Php

 

Sujets relatifs
Problème avec script sur mon siteUtiliser du VBS sous PHP
[PHP] Comment générer une erreur HTTP 403 ?Flash/Php
[PHP] Au sujet de la prog d'un CMS/ Web blog[Résolu] Coppermine Photo Gallerie... HELP !!!!
[PHP] variable dans URL sans methode GETbesoin d'un script de multi-upload avec choix du rep de destination
help pour un script csh[JS] connaitre l'url d'un script inclus (pas la page)
Plus de sujets relatifs à : Echec upload d'une photo via script Php


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