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 :

Erreur d'upload de photos


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Par défaut Erreur d'upload de photos
    Bonjour,

    Je n'ai pas l'habitude de demander de l'aide sur les forum donc je peux vous dire que si je suis ici c'est que je suis vraiment désespéré et que j'ai tout essayé.

    Mon problème est le suivant j'ai 2 serveurs dédié (chez ovh), l'un copiant les données sur le second de sorte a ce que je mette en place un systéme de load balancing. Tout cela fonctionne parfaitement. Les deux serveur ont le même systéme d'exploitation gentoo release 2 d'ovh.

    Mon probléme ce situe au niveau de l'upload de fichier, de photo plus précisement.

    Sur le premier server tout fonctionne bien, sur le second cela me retourne une erreur :


    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpO0idcF' to '../../galerie/125561487284.jpg' in /home/croisito/www/intranet/outils/galerie/iframe_upload.php on line 104

    Mais uniquement cette erreur, c'est a dire :

    - qu'il ne s'agit pas d'un problème de dossier qui n'existe pas car sinon il y aurait eu l'erreur failed to open stream: No such file or directory et ce n'est pas le cas. De plus j'ai mis le chemin relatif ../../galerie/ et absolu /home/ ... /galerie et rien ne change. Si je met un chemin faux pour tester l'erreur failed to open stream: No such file or directory apparaît bien
    - Il ne s'agit pas non plus (a priori) d'un probléme de permission car pas d'erreur failed to open stream: No such file or directory, de plus les droits sont identique sur mes deux serveurs, les utilisateurs aussi. J'ai testé une dizaine de config différentes mais rien ne change, j'ai mis les dossier en root, en utilisiteur apache, en chmod 755, 777 ...

    Le fichier s'upload bien dans /tmp car j'arrive a le visualiser durant l'upload avant qu'il se supprime et lorsque je fais move_uploaded_file l'erreur apparait. Il semble que php soit incapable de déplacer le fichier de /tmp vers mon dossier galerie mais ce qui m'ennuie c'est qu'aucune erreur ne m'indique pourquoi il n'y arrive pas.

    Voici un morceaux de mon code mais celui la marche correctement sur un serveur en ligne et un serveur de preprod complètement différent au niveau de la config je pense donc qu'il ne faut pas chercher de ce coté la.
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
     // liste des Types Mimes autoris?s
     
            $type_img = array('image/jpeg','image/pjpeg','image/gif','image/png');
     
            $type_video = array('video/mpeg','video/quicktime','video/x-msvideo','video/x-sgi-movie','video/x-ms-wmv');
     
            $type_audio = array('audio/x-midi','audio/x-mpeg','audio/x-pn-realaudio','audio/x-wav','audio/mpeg','audio/ogg','audio/x-ms-wma');
     
            $type_flash = array('application/x-shockwave-flash');
     
            $hauteur_frame = 0;
     
            $nb_media = 0;
     
            $memo_rand = array();
            print_r($_FILES);
            while (list(, $fichier) = each($_FILES)) {
     
            //foreach($_FILES as $fichier) {
     
                    echo '<div class="liste_upload">';
     
                    // detection du type du fichier 
     
                    $type = "";
     
                    if (in_array ($fichier['type'], $type_img)) $type = "img";
     
                    if (in_array ($fichier['type'], $type_video)) $type = "video";
     
                    if (in_array ($fichier['type'], $type_audio)) $type = "audio";
     
                    if (in_array ($fichier['type'], $type_flash)) $type = "flash";
     
                    // envoi d'un media sur le serveur
     
                    $rand = rand(0,99);
     
                    while (in_array ($rand,$memo_rand)) {
     
                            $rand = rand(0,99);
     
                    }
     
                    $memo_rand[] = $rand;
     
                    if (isset($fichier['name']) ) {
     
                            if (!$fichier['error']){
     
                                    if ($type != "") {
     
     
     
                                            $name_media = time().$rand;
     
                                            $ext_media = strtolower(strrchr($fichier['name'],'.'));
     
                                            if (move_uploaded_file($fichier['tmp_name'],'../../galerie/'.$name_media.$ext_media)) {
     
    ....


    Je suis prêt a payer une bouteille de champagne a celui qui me donnera une vrai solution !!!

    Merci pour l'aide que vous pourrez m'apporter.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 124
    Par défaut
    Salut,

    les paramètres file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size et max_input_time dans php.ini sont pareils ?

    As tu essayé avec is_uploaded_file pour voir si c'est un problème de source ou de destination ? ou avec un copy ?

  3. #3
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    salut,

    peux tu essayé avec des chemins absolu ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Par défaut
    Salut,

    Merci pour vos réponses.

    keskidi, j'ai copier le php.ini du premier serveur sur le second pour être sur et ca n'as rien changé. lorsque je fais is_uploaded_file il me repond 1, ce qui confirme ce que je disais le fichier est uploadé dans /tmp mais impossible de le déplacer dans mon dossier galerie pour une raison inconnu. J'ai essayé en ligne de commande via ssh de copier avec la commande cp la copie s'effectue en effet (mais je suis en root en ssh). De plus j'ai changé le répertoire de destination, si je lui dis de déplacer mon image n'importe ou dans /home il me met toujours cette erreur mais j'ai fais un move_uploaded_file dans /tmp et cela a marché. Quand a savoir pourquoi il ne veux plus déplacer mon fichier dans /home/mon_site/www/intranet/galerie/ je ne sais pas. Il possède tout les droits nécessaire pour le faire en plus.

    Thes32 j'ai déjà essayé avec le chemin absolu, même problème qu'avec le chemin relatif.

    En gros a par pour un problème de droit je ne vois pourquoi il refuserais de copier dans /home et il ne me met pas d'erreur permission denied. Je commence a perdre espoir. (non le reformatage n'est pas la solution )

  5. #5
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Peux tu regarder les logs php ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Par défaut
    Les logs de php ? de apache tu veux dire non ? Je ne sais pas ou sont les logs de php.

    Bon en tout cas dans apache rien de bien spécial je pense.

    Bon au grand maux les grands remédes, c'est pas trés propre mais je vais mettre mes images dans un dossier a la racine du serveur.

    Merci pour votre aide en tout cas

Discussions similaires

  1. [Joomla!] Erreur 403 upload photo Seyret version Pro
    Par filiplarlibe dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 21/08/2009, 17h22
  2. [Upload] Upload de photo et modifier le nom
    Par HwRZxLc4 dans le forum Langage
    Réponses: 14
    Dernier message: 08/05/2006, 21h24
  3. [Upload] Uploadé une photo?
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2006, 15h33
  4. [Upload] Message d'erreur à l'upload d'un mp3
    Par leloup84 dans le forum Langage
    Réponses: 2
    Dernier message: 17/03/2006, 10h16
  5. [Upload] erreur d'upload de logo sur forum
    Par Grand Hibou dans le forum Langage
    Réponses: 4
    Dernier message: 30/01/2006, 18h27

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