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 :

[Upload] problème d'upload de fichiers


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut [Upload] problème d'upload de fichiers
    voila le souci je dois uploader une image. J'ai défini un max à 5,5Mo. Le souci c'est que j'ai une image qui fait 5Mo. Je n'arrive pas à l'uploader, alors que d'autres images (moins importante passe (3Mo))

    voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <INPUT type="hidden" name="MAX_FILE_SIZE"  VALUE="5500000">
    <INPUT type="file" name="fichier" size="30" id="fichier">(taille maxi 5Mo)
    voila le code d'upload

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //UPLOAD DE L'IMAGE
    $repertoire = "rep_photos/";
     
    if (is_uploaded_file($_FILES['fichier']['tmp_name']))
    {
    $fichier_temp = $_FILES['fichier']['tmp_name'];		
    $extension = substr($_FILES['fichier']['name'], -4); 
    $nom_fichier = $nom.$extension;
     
    $fichier = $repertoire.$nom_fichier;
    // erreur sur $fichier
     
    copy($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier);
    }

  2. #2
    Membre habitué
    Avatar de savageman86
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Points : 199
    Points
    199
    Par défaut
    Va voir ta configuration de PHP du coté de (dans cet ordre) : upload_max_filesize, post_max_size, memory_limit.

    C'est quoi ton erreur ? $_FILE et $_POST sont vides ?

  3. #3
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    voila l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined variable: fichier in D:\EasyPHP 2.0b1\www\photos\insert.php on line 46
    la ligne 46 correspond à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $size = getimagesize($fichier);
    post_max_size : local (8M) Master (8M)
    upload_max_filesize : local (2M) Master (2M)
    memory_limit : pas touvé dans le phpinfo

  4. #4
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    je viens d'essayer avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('upload_max_file_size', '6M');
    mais ça ne marche pas

  5. #5
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    je viens de reconfigurer le php.ini j'ai mis ces valeurs mais ça ne marche pas

    post_max_size : local (28M) Master (28M)
    upload_max_filesize : local (10M) Master (10M)

  6. #6
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    je viens d'utiliser le code qui est sur http://antoine-herault.developpez.co...ls/php/upload/

    Le problème reste inchangé

    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
    	$repertoire = "rep_photos/";
    	$fichier = basename($_FILES['fichier']['name']);
    	$taille_maxi = 6000000;
    	$taille = filesize($_FILES['fichier']['tmp_name']);
    	$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.PNG', '.GIF', '.JPG', '.JPEG');
    	$extension = strrchr($_FILES['fichier']['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 png, gif, jpg, jpeg, txt ou doc...';}
    	if($taille>$taille_maxi)
    	{$erreur = 'Le fichier est trop gros...';}
     
    	 //UPLOAD DE L'IMAGE
     
    		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['fichier']['tmp_name'], $repertoire . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    			 {
    			 }
    			 else //Sinon la fonction renvoie FALSE).
    			 {
    				  echo 'Echec de l\'upload !';
    			 }
    		}
    		else{
    		echo $erreur;}
    Personne peut m'aider ????

  7. #7
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Qu'est-ce que tu obtiens quand tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    var_dump($_FILES);
    echo '</pre>';

  8. #8
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    rien du tout

  9. #9
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    A quel endroit as-tu mis le code ?
    Essaie en le mettant au début de ton script (si ce n'est pas déjà le cas)...

  10. #10
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    je l'ai mis là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(isset($_POST['insert']))//correspond au bouton d'envoie des informations
    {
     
    echo '<pre>';
    var_dump($_FILES);
    echo '</pre>';
    ...

  11. #11
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    j'ai changé tes ' par des "

    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
    photos 5,41 Mo
     
    array(1) {
      ["fichier"]=>
      array(5) {
        ["name"]=>
        string(8) "5-41.JPG"
        ["type"]=>
        string(0) ""
        ["tmp_name"]=>
        string(0) ""
        ["error"]=>
        int(2)
        ["size"]=>
        int(0)
      }
    }
    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
    photo 1,5Mo
     
    array(1) {
      ["fichier"]=>
      array(5) {
        ["name"]=>
        string(12) "STGERM_2.JPG"
        ["type"]=>
        string(11) "image/pjpeg"
        ["tmp_name"]=>
        string(30) "D:\EASYPH~1.0B1\\tmp\phpE5.tmp"
        ["error"]=>
        int(0)
        ["size"]=>
        int(1435073)
      }
    }

  12. #12
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Je ne vois pas comment tu ne peux rien avoir en retour... à moins que $_POST['insert'] ne soit pas défini...

    Tu as regardé dans les sources ?

    L'intérêt de faire cette manip, c'est de voir tout ce que contient $_FILES, et notamment une éventuelle erreur, remontée dans $_FILES['fichier']['error']...

  13. #13
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    c'est bon justement j'ai juste remplacé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    var_dump($_FILES);
    echo '</pre>';
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<pre>";
    var_dump($_FILES);
    echo "</pre>";
    du coup ça marche

  14. #14
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Je ne vois pas ce que change le remplacement de ' par ", mais bon, passons...

    pour analyser le code d'erreur, tu as cette page : http://www.php.net/manual/fr/feature...oad.errors.php

    Dans ton cas, c'est l'erreur 2, donc :
    UPLOAD_ERR_FORM_SIZE

    Valeur : 2. Le fichier téléchargé excède la taille de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML.
    Quelle est exactement la taille de ton fichier ?

  15. #15
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    la taille du fichier fait 5,41Mo j'ai déclaré de le fichier de configuration de php

    post_max_size : local (28M) Master (28M)
    upload_max_filesize : local (10M) Master (10M)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <INPUT type="hidden" name="MAX_FILE_SIZE"  VALUE="10000000">
    <INPUT type="file" name="fichier" size="30" id="fichier">(taille maxi 5Mo) </div></td>

  16. #16
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT type="hidden" name="MAX_FILE_SIZE"  VALUE="10000000">
    tu as le même code d'erreur dans $_FILES ? (au début c'était 5500000)

  17. #17
    Membre habitué
    Avatar de savageman86
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Points : 199
    Points
    199
    Par défaut
    Regarde le code d'erreur retourné dans $_FILES['file']['error'] s'il existe.
    Quelle est l'erreur retournée ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] Problème de droit de fichier
    Par judas54 dans le forum Langage
    Réponses: 9
    Dernier message: 20/02/2007, 17h13
  2. [Upload] Problème d'upload de fichier
    Par Halukard dans le forum Langage
    Réponses: 10
    Dernier message: 21/11/2006, 20h36
  3. [Upload] Problème d'upload de fichiers
    Par karo91 dans le forum Langage
    Réponses: 19
    Dernier message: 07/11/2006, 00h24
  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, 10h48
  5. [Upload] Problème d'upload de fichiers
    Par FredMines dans le forum Langage
    Réponses: 9
    Dernier message: 26/04/2006, 18h13

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