Upload de fichier

Résolu
pandageek Messages postés 379 Statut Membre -  
boyback Messages postés 243 Statut Membre -
Bonjour,
voici mon code :
<?php  
if(isset($_FILES['avatar'])) 
{  
     //echo basename($_FILES['avatar']['tmp_name']); 
      
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], 'avatar/1.jpg')) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... 
     { 
          echo 'Upload effectué avec succès !'; 
     } 
     else //Sinon (la fonction renvoie FALSE). 
     { 
          echo 'Echec de l\'upload !'; 
     } 

} 
else 
{ 
 ?> 
  
<form method="POST" action="" enctype="multipart/form-data"> 
     Fichier : <input type="file" name="avatar"> 
     <input type="submit" name="envoyer" value="Envoyer le fichier"> 
</form> 

 <?php 
}


j'upload le fichier mais l'étape "move_uploaded_file ne fonctionne pas.
ce code renvoie Echec de l'upload.

merci pour votre aide

A voir également:

12 réponses

boyback Messages postés 243 Statut Membre 23
 
J'ai utilise ce formulaire d'upload il y a peu et je n'ai pas eu de soucis, il y a une extension PHP a activer pour l'upload de fichier, l'as tu fais ?
0
pandageek Messages postés 379 Statut Membre 4
 
quelle extension?
0
boyback Messages postés 243 Statut Membre 23
 
Je viens de regarder sur mon serveur web, dans la configuration du moteur PHP j'ai d'activé "file_uploads".

0
pandageek Messages postés 379 Statut Membre 4
 
c'est activé sur le serveur qui m'héberge
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pandageek Messages postés 379 Statut Membre 4
 
up
0
boyback Messages postés 243 Statut Membre 23
 
Voici le code de la fonction d'upload que j'utilise et qui fonctionne :

$Dossier = 'images_dvd/';   
$Fichier = basename($_FILES['Jaquette']['name']);   
$Taille_maxi = 100000;   
$Taille = filesize($_FILES['Jaquette']['tmp_name']);   
$Extensions = array('.png');   
$Extension = strrchr($_FILES['Jaquette']['name'], '.');    

if(!in_array($Extension, $Extensions))   
{   
     $Erreur = '<script language=javascript>alert("Le fichier doit être au format PNG !");<script>';   
}   
if($Taille>$Taille_maxi)   
{   
  $Erreur = '<script language=javascript>alert("Le fichier est trop gros !");<script>';   
}   
if(!isset($Erreur))  
{   
   if(move_uploaded_file($_FILES['Jaquette']['tmp_name'], $Dossier . $Fichier))    
    {   
       echo '<script language=javascript>alert("Upload réussie ! !");<script>';     
    }   
  else    
   {   
      echo 'Echec de l\'upload !';   
   }   
}


A quel moment récupères-tu les données ?

Aide Info - neoflow . fr - N'hésitez pas à y faire un tour ! :)
0
pandageek Messages postés 379 Statut Membre 4
 
voici ton code qui renvoie "échec de l'upload":

$Dossier = 'avatar/';    
$Fichier = basename($_FILES['fichier']['name']);    
$Taille_maxi = 100000;    
$Taille = filesize($_FILES['fichier']['tmp_name']);    
$Extensions = array('.png');    
$Extension = strrchr($_FILES['fichier']['name'], '.');     

if(!in_array($Extension, $Extensions))    
{    
     $Erreur = '<script language=javascript>alert("Le fichier doit être au format PNG !");<script>';    
}    
if($Taille>$Taille_maxi)    
{    
  $Erreur = '<script language=javascript>alert("Le fichier est trop gros !");<script>';    
}    
if(!isset($Erreur))   
{    
   if(move_uploaded_file($_FILES['Jaquette']['tmp_name'], $Dossier . $Fichier))     
    {    
       echo '<script language=javascript>alert("Upload réussie ! !");<script>';      
    }    
  else     
   {    
      echo 'Echec de l\'upload !';    
   }    
} 


?> 
   
  
<form method="POST" action="" enctype="multipart/form-data"> 
     <!-- On limite le fichier à 100Ko --> 
     <input type="hidden" name="MAX_FILE_SIZE" value="100000"> 
     Fichier : <input type="file" name="fichier"> 
     <input type="submit" name="envoyer" value="Envoyer le fichier"> 
</form>


Il doit s'agir d'un problème de droits non?
0
pandageek Messages postés 379 Statut Membre 4
 
il y a une erreur dans le code : la fonction move_uploaded_file doit avoir
 $_FILES['fichier']['tmp_name'] 
comme paramètre.
0
boyback Messages postés 243 Statut Membre 23
 
Je ne pense pas puisque tu écris dans la partie du serveur web qui "t'appartiens" chez ton hébergeur.

As-tu déjà essayé en local sur un serveur web pour voir ?

Je viens de voir quelque chose, dans ton formulaire HTML dans le paramètre Action tu dois mettre comme valeur la page vers laquelle le formulaire doit s'envoyer. Essaye on verra si ça vient de là.

Ton répertoire "Avatar" se situe bien dans le même répertoire que ta page web ?
0
pandageek Messages postés 379 Statut Membre 4
 
en local, je trouve la même erreur et une valeur de Action nulle permet de rappeler la page courante comme page de destination.
oui avatar est dans le même répertoire que ma page.
0
boyback Messages postés 243 Statut Membre 23
 
Moi j'ai une première page qui contient une fonction PHP contenant le formulaire :

<form method='POST' action='ajoutdvd2.php' enctype='multipart/form-data'>
Jaquette : <input type='file' name='Jaquette'>
<input type='hidden' name='MAX_FILE_SIZE' value='100000'>
<input type='submit' value='Envoyer le fichier'>
</form>

Puis une seconde page qui exécute une fonction PHP pour uploader l'image et cette fonction contient le code que je t'ai envoyé toute à l'heure.

C'est étonnant que même en local ça ne fonctionne pas...Tu peux toujours vérifier les droits sur ton répertoire "Avatar" on sait jamais si c'est en lecture seule...
0
pandageek Messages postés 379 Statut Membre 4
 
tout fonctionne, les droits étaient mal réglés ou j'uploadais une image trop volumineuse.
merci beaucoup pour ton aide boyback ;)
0
boyback Messages postés 243 Statut Membre 23
 
Ah super ! Bon upload alors ^^

Tu peux faire un tour sur le site dans ma signature si tu veux (si tu aimes l'informatique !) :P

Aide Info - neoflow . fr - N'hésitez pas à y faire un tour ! :)
0
boyback Messages postés 243 Statut Membre 23
 
Et n'oublie pas de mettre le sujet en Résolu. Merci
0