Problème d'upload

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'upload

par mere-teresa » 09 juin 2006, 11:32

C'est pour cela qu'on conseille les chemins relatifs !

par bucheron » 09 juin 2006, 09:54

je vois...
imaginons je dit que ce la se trouve a l'adresse c:/ ....

Mais une fois que je vais uploader les fichiers sur le serveur ca ne va plus marcher ??? non ?

par Ryle » 08 juin 2006, 19:37

Si tu utilises des chemins absolu, vu qu'apparement tu es sous windows, il te manque le lecteur dans ton chemin (C:\...). Il faut distinguer les chemins absolus "URL" où la racine correspond à la racine de ton site, et les chemins absolus "fichiers physique" où la racine est celle de ton disque :)

regarde du côté de la variable $rep_img_logo :)

par bucheron » 08 juin 2006, 18:13

en fait j'utilise les chemins absolus.
Mais je pense qu'il y a un pb du nom temporaire.
Mais celui ci ce n'est pas moi qui le définit donc je ne sais pas comment faire.

Je ne pense pas que c'est les droits mais sais tu comment et ou se trouve le fichier temporaire par défaut ou apache met les fichiers .

voici la fonction que j'utilise pour L'upload des images.
Je lui passe en argument le $_FILE récupérer :

Code : Tout sélectionner

//fonction qui vérifie la validité d'une image function analyseImg($file_img){ global $rep_img_logo; unset($erreur); $extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); $taille_max = 200000; $dest_dossier = $rep_img_logo; // utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/'; // vérifications if( !in_array( substr(strrchr($file_img['name'], '.'), 1), $extensions_ok ) ){ $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !'; } else if( file_exists($file_img['tmp_name']) && filesize($file_img['tmp_name']) > $taille_max) { $erreur = 'Votre fichier doit faire moins de 500Ko !'; } // copie du fichier if( !isset($erreur) ){ $dest_fichier = basename($file_img['name']); // formatage nom fichier // enlever les accents $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); // remplacer les caracteres autres que lettres, chiffres et point par _ $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier); // copie du fichier move_uploaded_file($file_img['tmp_name'], $dest_dossier.$dest_fichier); return array("estValide" => true, "mess" => $dest_dossier.$dest_fichier); } return array("estValide" => false, "mess" => $erreur); }

par Ryle » 08 juin 2006, 17:45

... ou d'un problème de chemin mal défini ;)

Tu donnes un chemin pour retrouver ton fichier relatif à la racine : /UserFiles/logo/050416153847_66.jpg

Il te manque soit un point devant le slash pour dire que tu pars du dossier contenant le script (./) ou supprimer le premier slash (ce qui revient au même que précédement) ou enfin (mais c'est pas terrible) mettre un chemin absolu à partir de C:/... :)

par mere-teresa » 08 juin 2006, 17:21

La plupart des erreurs de file upload viennent des droits mal paramétrés.

Problème d'upload

par bucheron » 08 juin 2006, 17:09

Bonjour,

j'ai un petit problème d'upoad dont je ne connais pas la solution.
J'ai utiliser le script http://www.phpfrance.com/tutoriaux/inde ... e-fichiers pour vérifier si l'image à uploader est correcte.

jusque la pas de souci :D .

But...

je travaille en local et je pense que c'est la config du fichier php.ini qui faut toucher mais je ne sais pas comment faire.

je vous met mes 2 messages d'erreur :

Code : Tout sélectionner

Warning: move_uploaded_file(/UserFiles/logo/050416153847_66.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\php\www\casino\db.class.php on line 210 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'c:/php/tmp\php24B.tmp' to '/UserFiles/logo/050416153847_66.jpg' in C:\php\www\casino\db.class.php on line 210 /UserFiles/logo/050416153847_66.jpg
voila si vous avez des idées .....

merci