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

 


Dernière réponse
Sujet : [php] Upload et Open_BaseDir restriction
Freekill tu as bien spécifié ENCTYPE="multipart/form-data" pour ton formulaire?

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Freekill tu as bien spécifié ENCTYPE="multipart/form-data" pour ton formulaire?
pingu23 j'ai utilisé le même script que toi, Freekill, mais les varaiables $HTTP_POST_FILES['userfile']['size'] et $HTTP_POST_FILES['userfile']['tmp_name'] sont vides lorsque j'envoie le formulaire ....
 
et du coup, je ne sais pas si mon fichier a été  envoyé sur le serveur (et ou a t'il été envoyé surtout ??)
Freekill C'est bon, j'ai fini par trouver grâce au lien de Mara's dad! (lecture un peu fastidieuse mais bon)
 
En fait, il fallait utiliser les variables $HTTP_POST_FILES['userfile']['name'] et $HTTP_POST_FILES['userfile']['tmp_name'] .
 
Pour ceux que ça intéresse voici un code qui marche (le reste n'a pas changé) :
 

Code :
  1. // Pull out the information about this upload.
  2. // You don't need type or size unless you want them.
  3. $userfile = $HTTP_POST_FILES['userfile']['name'];
  4. $type = $HTTP_POST_FILES['userfile']['type'];
  5. $size = $HTTP_POST_FILES['userfile']['size'];
  6. $location = $HTTP_POST_FILES['userfile']['tmp_name'];
  7. // If the upload was successful, then move the tmp file.
  8. // Subsitute ./tmp/$userfile to whatever directory/file you want.
  9. // moveFailed() - whatever you want here to handle move failure.
  10. if($userfile and is_uploaded_file($location))
  11. { move_uploaded_file($location, "./tmp/$userfile" ) or moveFailed(); }


 
Je l'ai juste un peu modifié dans mon cas pour pouvoir tester les propriété de l'image uploadée...
 
Merci à vous  :hello:

Sh@rdar essaye d'utiliser le chemin complet depuis la racine du serveur ,visible en faisant un phpinof()
 
en général /var/www/ ou un truc dans le genre.
Freekill

Mara's dad a écrit a écrit :

Je sais pas si çà à un rapport, mais :
Il manque le champ hidden MAX_FILE_SIZE dans ton formulaire.
 
Voir http://www.php.net/manual/fr/features.file-upload.php pour plus de détails...  




 
Ca c'est pas grave.
 
Je vérifie la taille du fichier avant le move_uploaded_file
 
Non, je crois qu'il doit l'uploader dans un répertoire temp sur le serveur et qu'près je n'y ai pas accès à cause de la restriction.
 
J'avoue que je suis un peu  :??: avec cette histoire d'upload...

Mara's dad Je sais pas si çà à un rapport, mais :
Il manque le champ hidden MAX_FILE_SIZE dans ton formulaire.
 
Voir http://www.php.net/manual/fr/features.file-upload.php pour plus de détails...
Freekill Salut,
 
J'ai fait un petit script pour que les users de mon site puissent uploader leur photo.
 
Ca marche très bien chez moi, mais lorsque je l'essaie chez mon hébergeur (forez.com) j'obtiens ce message:
 

Citation :


Warning: open_basedir restriction in effect. File is in wrong directory in /opt4/opt2/forez/httpd/htdocs/sites2/monsitemonsite/monsite/portrait_post.php3 on line 4


 
La page avec le formulaire contient ça:
 

Code :
  1. <FORM NAME="upload" ENCTYPE="multipart/form-data" ACTION="portrait_post.php3" METHOD=POST>
  2. <input type="text" name="user" value="">
  3. <input type="password" name="pass" maxlength="30" size="20">
  4. <input type="File" name="userfile" size="30" maxlength="255">
  5. <a href="javascript:document.upload.submit()">Envoyer</a>
  6. </FORM>


 
et le script d'upload ça:
 

Code :
  1. <?
  2. $path ="common/i/portraits/";
  3. $filename = $user.".jpg";
  4. move_uploaded_file($userfile, $path.$filename);
  5. ?>


 
J'ai essayé différentes valeurs pour $path  mais rien à faire : "", "/common/i/portraits/", "../common/i/portraits/", "/common/i/portraits", "/opt4/opt2/forez/httpd/htdocs/sites2/monsitemonsite/monsite/" etc.
 
 
Quelqu'un a-t'il une idée pour que ça fonctionne?
 
Merci d'avance pour vos réponses.


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)