Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/09/2007, 17h20   #1
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
Par défaut [Upload] move_uploaded_file impossible mais erreur=0

Salut
Je suis dans une grosse galère :
J'upload un fichier (tout marche parfaitement en local) sur mon serveur de prod via un formulaire dans mon navigateur.

Tout ce passe bien sauf que je n'arrive pas à faire de move_uploaded_file et que je n'ai aucune erreur.

$_FILES['userfile']['error'] == 0
pas d'erreur sur la fonction move_uploaded_file non plus, malgré un error_reporting(2047).

Voici mon code :
Code php :
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
<?php
if(isset($_FILES['userfile'])){
//---------------- Destination folder
$uploaddir = $_SERVER['DOCUMENT_ROOT']."/images/newsletter/";
  //---------------- Checking types
  if($_FILES['userfile']['type'] == 'image/jpeg' || $_FILES['userfile']['type'] == 'image/png' || $_FILES['userfile']['type'] == 'image/gif'){
    $temp_file = $_FILES['userfile']['tmp_name'];
 
     if(move_uploaded_file($temp_file, $uploaddir.$_FILES['userfile']['name'])){
        //---------------- Creation of thumbs (GD)
        [...]
        $image = $_FILES['userfile']['name'];
      }
      else{
        $confirmation .= 'Impossible to move uploaded file<br />';
      }
    }
    else{
      $confirmation .= 'You can upload only JPG, GIF or PNG files.<br />';
    }
}
else{
  $image = '';
}
?>
Et j'ai bien un formulaire avec enctype="multipart/form-data"...
C'est à vous rendre fou !!
Si quelqu'un pouvait m'aider, ce serait grandiose !

__________________
GAMIN !!!!
_______________________________________________
PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 19h24   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
C'est vague
Citation:
Envoyé par mathieugamin
Tout ce passe bien sauf que je n'arrive pas à faire de move_uploaded_file et que je n'ai aucune erreur.
Oui et qu'est-ce qui vous l'indique ? Que donne un var_dump($_FILES) ?

N'y aurait-il pas un problème de chemin par la suite comme ici :
Code :
$image = $_FILES['userfile']['name'];
Puisque l'image ne semble pas dans le répertoire courant :
Code :
$uploaddir = $_SERVER['DOCUMENT_ROOT']."/images/newsletter/";
Note : l'emploi des fonctions ereg* est, depuis un certain temps déjà, déconseillé ...
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 08h53   #3
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
Bonjour,
Merci de votre réponse

En fait, lorsque je fait un var_dump($_FILES) j'ai un code erreur 0... le fichier est bien celui téléchargé, la taille correspond bien à celle du fichier et je récupère bien un nom temporaire pour celui-ci.
Voici ce que je récupère :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
array(1) {
  ["userfile"]=>
  array(5) {
    ["name"]=>
    string(8) "kube.jpg"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(14) "/tmp/phpYJBj7T"
    ["error"]=>
    int(0)
    ["size"]=>
    int(148879)
  }
}
Citation:
N'y aurait-il pas un problème de chemin par la suite comme ici :
$image = $_FILES['userfile']['name'];
Non, j'ai re-vérifié... Je garde ici la variable seulement pour insérer le nom dans ma base.

Citation:
Note : l'emploi des fonctions ereg* est, depuis un certain temps déjà, déconseillé ...
Oui, c'est un vieux code, j'aurais dû faire attention... J'ai corrigé

Est-ce que cela peut être dû à la configuration du serveur ?
Il est géré par un service de ma boîte et ils ont la fâcheuse habitude de modifier des paramètres sans prévenir....

Merci
__________________
GAMIN !!!!
_______________________________________________
PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 11h39   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par mathieugamin
Est-ce que cela peut être dû à la configuration du serveur ?
Il est géré par un service de ma boîte et ils ont la fâcheuse habitude de modifier des paramètres sans prévenir....
J'en doute car cela se verrait dans le tableau $_FILES. Vous pouvez toutefois le vérifier via un phpinfo (à placer/exécuter de préférence au même endroit que votre script).

Pas de problème de droits sur le répertoire de destination ? Qu'est-ce qui vous fait dire que move_uploaded_file ne fonctionne pas ? Est-ce parce qu'il vous donne :
Code X :
Impossible to move uploaded file<br />
(les erreurs sont bien affichées sur votre serveur ?)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 11h44   #5
Membre du Club
 
Inscription : juin 2007
Messages : 56
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 56
Points : 43
Points : 43
Bonjour


Regarde si la fonction move_uploaded_file n'est pas interdite dans le parametrage de ton fichier php.ini ( disable_functions ="...liste des fonctions interdites..." )

Cela expliquerai pourquoi ca marche sur le dev et pas sur la prod et pourquoi tu n'as pas de message d'erreur.

Bon courage
jerome600 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 13h47   #6
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
Citation:
Pas de problème de droits sur le répertoire de destination ?
C'est bien cela...

Les droits ont été modifiés par l'équipe de choc dont j'ai parlé plus haut !

Et dire qu'Internet est censé permettre une meilleure communication... C'est toujours le même problème, c'est l'individu qui est au départ de la communication...

Merci Julp pour votre aide

Bonne journée
__________________
GAMIN !!!!
_______________________________________________
PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h29.


 
 
 
 
Partenaires

Hébergement Web