IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème d'upload de fichier


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Par défaut Problème d'upload de fichier
    j'essaie d'ajouter une fonction pour que les utilisateurs n'ayant pas un fichier sur leurs propre site puissent l'uploader sur le ftp (principalement pdf et doc).
    J'ai le code ci-dessous mais quand j'essaie j'ai l'erreur de l'extension avec n'importe quel fichier.

    upload.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method="POST" action="upload_file.php" enctype="multipart/form-data">	
    <input type="file" name="file">
    <input type="hidden" name="MAX_FILE_SIZE" value="2000000"><input type="submit" name="envoyer" value="Envoyer le fichier">
     
    </form>
    upload_file.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
    $dossier = 'upload/';
    $fichier = basename($_FILES['file']['name']);
    $taille_maxi = 2000000;
    $taille = filesize($_FILES['file']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '.pdf', '.txt');
    $extension = strrchr($_FILES['avatar']['name'], '.'); 
    //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 pdf, doc, docx, png, gif, jpg, jpeg ou txt.';
    }
    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);
         if(move_uploaded_file($_FILES['file']['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;
    }
    ?>
    d'où vient cette erreur ?

    merci d'avance ! :-)

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 146
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $extension = strrchr($_FILES['avatar']['name'], '.');
    sa serai pas plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $extension = strrchr($_FILES['file']['name'], '.');
    ??

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Par défaut
    ah oui merci ! cela fonctionne avec les pdf et doc maintenant mais pas avec les .jpg..

    et si je veux récupérer l'adresse du fichier uploadé pour en faire un lien (en l'enregistrant dans la table) comment puis-je faire ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 146
    Par défaut
    Concernant le .jpg cela devrait marcher :s
    et pour le chemin je ne suis pas sur ... mais je pense que c'est quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SERVER["HTTP_HOST"]."le chemin de ton projet"./upload/.'$fichier';
    j'en suis vraiment pas sur ....

    Il faut vérifier je pense aussi les droits sur le dossier ( le chmod )

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Par défaut
    Cela fonctionne pas mais j'ai fait la chose comme telle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
              echo 'Upload effectué avec succès !';
    		  echo '<br><br>Voici le lien du fichier:<br><br>';
    		  echo '<b>http://www.swiss-target.ch/upload/',$fichier,'</b>';
    		  echo '<br><br>Copier-coller le dans le formulaire.';
    pour les permissions j'ai mis 777 sur le dossier.

    je remarque que lorsque le fichier est déjà uploadé il n'est pas écrasé lorsqu'il est chargé à nouveau.. quid ?

    Autre question, quel est le meilleur moyen pour les supprimer ? le faire manuellement après un certain temps ou c'est possible de mettre un code pour que l'utilisateur puisse le supprimer ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 146
    Par défaut
    je pense qu'il y a une erreur a ce niveau là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo '<b>http://www.swiss-target.ch/upload/',$fichier,'</b>';
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<b>http://www.swiss-target.ch/upload/'.$fichier.'</b>'
    c'est des points a la place des virgules .
    Apres pour le remplacement de fichier tu peux toujours tester si le fichier existe , si c'est le cas tu le supprime et le remplace ( il y peut être une fonction php qui fait sa ) .

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Citation Envoyé par marycandy Voir le message
    je remarque que lorsque le fichier est déjà uploadé il n'est pas écrasé lorsqu'il est chargé à nouveau.. quid ?
    Quand tu fais des essais successifs, pas impossible que le navigateur ait gardé l'ancien fichier dans son cache. Vide le cache du navigateur avant de refaire un nouvel essai.

Discussions similaires

  1. [FTP] Problème pour uploader un fichier
    Par Crazyblinkgirl dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/01/2008, 22h21
  2. [Upload] Problème d'upload de fichier
    Par Halukard dans le forum Langage
    Réponses: 10
    Dernier message: 21/11/2006, 19h36
  3. [Upload] Problème d'upload de fichiers
    Par karo91 dans le forum Langage
    Réponses: 19
    Dernier message: 06/11/2006, 23h24
  4. [Upload] Problème pour uploader un fichier dans mon code
    Par Peuplarchiste dans le forum Langage
    Réponses: 2
    Dernier message: 27/05/2006, 09h48
  5. [Upload] Problème d'upload de fichiers
    Par FredMines dans le forum Langage
    Réponses: 9
    Dernier message: 26/04/2006, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo