Upload avec PHP - débutant [Résolu]

systemsb 21 Messages postés mardi 4 octobre 2005Date d'inscription 17 mars 2011 Dernière intervention - 15 déc. 2008 à 12:05 - Dernière réponse : islyoung2 12 Messages postés samedi 18 juillet 2009Date d'inscription 7 février 2012 Dernière intervention
- 15 déc. 2008 à 14:17
Bonjour,

Je suis en train d'essayer un petit bout de code en php pour faire un Upload.
J'ai monté sur mon pc sous Windows XP le serveur : IIS  (5.1)
J'ai installé PHP en suivant les tutoriels.
Le Upload ne fonctionne pas, il ne copie rien...et je ne vois rien non plus dans le répertoire temporaire définit dans php.ini

voici les codes sources :

HTML:
<form method= "POST" action="upload.php" enctype="multipart/form-data">
    <!-- on limite le fichier a 1 Mo -->
   
    Fichier :
   
</form>

PHP:
<?php
$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.');

if( !is_uploaded_file($tmp_file) )
    {
        echo 'Voici l erreur =  @@@';
        echo $_FILES['avatar']['error'];
        echo ' @@@                  ';
        exit("Le fichier est introuvable");
    }

//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur,  on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier,
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     
     echo '(2) Voici le nom du fichier : ';
     echo $_FILES['avatar']['tmp_name'];
     echo '  à transferer dans : ';
     echo $dossier . $fichier ;
     echo '  ';
    
     // J'ai mis le move_upload en commentaire pour voir la trace du fichier dans les temporaires.
     //if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //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
{
     echo $erreur;
}
?>

Quelqu'un a t il une idée, pourquoi le fichier uploader n'arrive pas dans les temporaires ?
Note : J'ai analysé avec Wireshark le fichier est bien uploader...mais apparement pour rien...Evidement, j'ai recherché mon fichier sur tout le disque....mais rien aucune trace....

Merci de votre aide.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
islyoung2 12 Messages postés samedi 18 juillet 2009Date d'inscription 7 février 2012 Dernière intervention - 15 déc. 2008 à 14:07
3
Merci
Salut;
tu dois ajouter la ligne suivante : $tmp_file = $_FILES['avatar']['tmp_name'];
dans ton script php avant le test   : if( !is_uploaded_file($tmp_file) )
.
j'espère que sa marchera, de toute façon je les essayer ton script et sa marche très bien, bon courage

Merci islyoung2 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de islyoung2
islyoung2 12 Messages postés samedi 18 juillet 2009Date d'inscription 7 février 2012 Dernière intervention - 15 déc. 2008 à 14:12
0
Merci
de toute façon je l'ai essayé chez moi et sa marche très bien.
(désoler pour le langage S.M.S )
Commenter la réponse de islyoung2
systemsb 21 Messages postés mardi 4 octobre 2005Date d'inscription 17 mars 2011 Dernière intervention - 15 déc. 2008 à 14:13
0
Merci
Ça marche aussi chez moi maintenant !

YOUPI !!!
Commenter la réponse de systemsb
islyoung2 12 Messages postés samedi 18 juillet 2009Date d'inscription 7 février 2012 Dernière intervention - 15 déc. 2008 à 14:17
0
Merci
Heureux pour toi
Commenter la réponse de islyoung2

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.