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 03/11/2006, 13h38   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 9
Points : 1
Points : 1
Par défaut [Upload] Problème d'upload de fichiers

Bonjour,

Je viens de regrouper plusieurs sites qui se trouvaient sur des serveurs dédiés différents, sur un seul serveur dédié plus gros.

Suite à ce changement, l'upload de fichier qui marchait parfaitement bien sur les anciens serveurs ne fonctionne plus.

En fait mon formulaire :
Code :
1
2
3
4
 <form action="enreg_modif_avatar.php" method=post enctype='multipart/form-data'>
    <input type='file' name='pimport'>
    <input type=submit value='importer'>
</form>
me renvoit $_FILES["pimport"]["size"] à 0 et $_FILES["phimport"]["tmp_name"] vide.

Je pense à un problème avec enctype='multipart/form-data' mais je ne sais pas comment le régler.
Le répertoire temporaire dans lequel passe les fichiers a bien les droits d'écriture. Le fichier php.ini est bien configuré pour accepter les upload.

Je suis à court d'idée, je vous remercie donc par avance pour le moindre élement que vous m'apporterez qui pourait m'éclairer.
karo91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 13h51   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Pour commencer ce serait
Code :
$_FILES["pimport"]["tmp_name"]
et non
Code :
$_FILES["phimport"]["tmp_name"]
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 13h56   #3
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 797
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 797
Points : 1 688
Points : 1 688
Salut,
tu peux également vérifier l'ancienneté de ta version de PHP et voir si il ne faut pas utiliser $HTTP_POST_FILES
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 14h17   #4
Invité de passage
 
Inscription : novembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 9
Points : 1
Points : 1
Citation:
Envoyé par Kerod
Pour commencer ce serait
Code :
$_FILES["pimport"]["tmp_name"]
et non
Code :
$_FILES["phimport"]["tmp_name"]

Oui pardon j'ai voulu changer le nom de la variable sur mon post mais j'ai raté mon coup .



Pour le $HTTP_POST_FILES merci mais non ce n'est pas ca :s
karo91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 16h00   #5
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
bonjour est ce que tu px mettre le code php qui permet l'upload comme sa on peut voir claire
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 16h09   #6
Membre émérite
 
Avatar de viviboss
 
Inscription : août 2006
Messages : 943
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : août 2006
Messages : 943
Points : 941
Points : 941
.... Sujet 300 000 000 000 de fois rabachés.....
viviboss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 16h30   #7
Invité de passage
 
Inscription : novembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 9
Points : 1
Points : 1
Le formulaire est le suivant :
Citation:
<form action="enreg_modif_avatar.php" method=post enctype='multipart/form-data'>
<input type='file' name='pimport'>
<input type=submit value='importer'>
</form>
Et la page de traitement :
Citation:
if($_FILES["pimport"]["size"] >0 && $_FILES["pimport"]["size"]<=$poids_max)
{
$repertoireDestination = "images/".$id.".JPG";

// SI DEJA UNE PHOTO ON LA SUPPRIME
// ********************************
@unlink("$repertoireDestination");

// UPLOAD DE LA PHOTO ET MISE EN PLACE DE LE REPERTOIRE DES AVATARS
//********************************************************
if (move_uploaded_file($_FILES["pimport"]["tmp_name"], $repertoireDestination))
{
echo "<br>Votre image a été importée avec succés !<br>
<a href='page.php'>retour</a>";
}
else
{
echo "Echec de l'upload du fichier";
}

}
else {
$kopoids=$_FILES["pimport"]["size"]/1024;
$kopoids=round($kopoids,2);
$max=$poids_max/1024;
$max=round($max,0);
print "<br>Cette image est trop lourde ($kopoids Ko) pour être hébergée sur notre serveur.
<br>Vous ne pouvez pas importer d'image dépassant $max Ko
<br>Essayez d'en réduire la taille.<br><br><a href=page.php>retour</a>";
}

Ce script fonctionnait parfaitement bien avant le changement de serveur.
Mais depuis $_FILES ne contient rien après l'envoie du formulaire. Je suis pas sur que ce sois un problème de code mais plutot un problème de configuration du serveur.





viviboss si tu as un lien je suis preneuse. Personnellement j'ai parcouru des forums toutes la matinée et je n'ai pas trouvé de solution à ce problème.
karo91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 16h34   #8
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Il existe la FAQ c'est pour ca qu'il doit dire ca aussi. Il suffit pas de parcourir le forum il faut voir ca aussi :
Citation:
Avant de poster -> FAQ PHP, cours PHP et sources PHP
Et justement il y a un Q/R dans la FAQ qui traite ce sujet
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 16h50   #9
Invité de passage
 
Inscription : novembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 9
Points : 1
Points : 1
J'ai bien vu la question : Comment envoyer un fichier depuis le navigateur sur le serveur à travers un formulaire HTML ?
mais elle ne répond pas à mon problème.

Ce script marchait avant le changement de serveur, c'est à mon avis un problème de configuration pas de code. J'ai déjà testé tous les problèmes basiques que j'aurais pu rencontrer : les droits sur les fichiers ou repertoire temporaire, le fichier php.ini mais je sèche, c'est pour cette raison que je me suis permise de poster.
karo91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 16h59   #10
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
ce que t'as donnée c'est pas le code complet il manque une variable comme $poids_max,et tu dois nous donner l'erreur
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 17h26   #11
Invité de passage
 
Inscription : novembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 9
Points : 1
Points : 1
Non non ce sont les parties de code qui concerne l'upload.

L'erreur c'est que $_FILES["pimport"]["size"]=0 donc il m'affiche :
"Cette image est trop lourde (0 Ko) pour être hébergée sur notre serveur.
Vous ne pouvez pas importer d'image dépassant 16 Ko
Essayez d'en réduire la taille"

Le problème est à la validation du formulaire, je n'ai plus rien dans $_FILES.
C'est pour ca que je pense que le problème vient de enctype='multipart/form-data'
karo91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 17h49   #12
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
je crois que j'ai trouvé la solution:
Code :
1
2
 
if (move_uploaded_file($_FILES["pimport"]["tmp_name"], $repertoireDestination.$_FILES["pimport"]["name"])){
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 17h58   #13
Invité de passage
 
Inscription : novembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 9
Points : 1
Points : 1
Merci d'essayer de m'aider, malheureusement ca ne marche pas.

En fait ca ne va meme pas jusque la puisque $_FILES["pimport"]["size"]=0, donc ca ne rentre même pas dans le if.
Le problème est avant l'upload
karo91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 18h23   #14
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
t'as un bleme au niveau de la variable size;
tu va juste modifier ce message
Code :
1
2
3
4
5
6
7
8
9
10
11
 
else{
echo "Echec de l'upload du fichier";
$kopoids=$_FILES["pimport"]["size"]/1024;
$kopoids=round($kopoids,2);
$max=$poids_max/1024;
$max=round($max,0);
print "<br>Cette image est trop lourde ($kopoids Ko) pour être hébergée sur notre serveur.
<br>Vous ne pouvez pas importer d'image dépassant $max Ko
<br>Essayez d'en réduire la taille.<br><br><a href=index1.php>retour</a>";
}
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 18h37   #15
Membre actif
 
Inscription : juillet 2003
Messages : 257
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 257
Points : 162
Points : 162
Code :
$_FILES["pimport"]["size"]=0
c'est un probleme qui correspond tres souvent à l'envoi d'un fichier avec une taille qui depasse la taille autorisée! dans ce cas la c tres normal que ta condition ne soit pas réalisé.

Personnellement je te conseille de regarder la configuration de ton serveur :
- upload_max_filesize
- max_execution_time
- max_input_time
- memory_limit

est ce que t'as pas par hasard un MAX_FILE_SIZE dans ton formulaire d'envoi?

tu peux nous donner les différentes valeurs si tu veux

EDIT : tu peux nous donner au meme temps le code ton formulaire d'envoi pour voir c'est quoi cette histoire en enctype?
SegmentationFault est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 19h20   #16
Invité de passage
 
Inscription : novembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 9
Points : 1
Points : 1
J'ai déjà regardé le php.ini et je vois pas le soucis.
Je me fais jeter avec une image de 3ko

J'ai les caractéristiques suivantes :
upload_max_filesize = 2M
max_execution_time = 30
max_input_time = 60
memory_limit = 8M


Mon formulaire est le suivant :
Citation:
<form action="enreg_modif_avatar.php" method=post enctype='multipart/form-data'>
<input type='file' name='pimport'>
<input type=submit value='importer'>
</form>
Je pense que le problème vient de la parce que dès que je lance la page
enreg_modif_avatar.php le contenu du $_FILE est vide, donc ce n'est pas un problème d'upload puisqu'il n'essait même pas de le faire il ne rentre pas dans le if
karo91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 21h08   #17
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
La syntaxe correcte est la suivante :
Code :
1
2
3
4
5
<form action="enreg_modif_avatar.php" method="post" 
enctype="multipart/form-data">
<input type="file" name="pimport"/>
<input type="submit" value="importer"/>
</form>
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 21h39   #18
Invité de passage
 
Inscription : novembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 9
Points : 1
Points : 1
Ce n'est pas non plus ça mais merci quand même.

J'ai affiché $_FILE sur la page appelé par le formulaire et ca donne ca :
Array ( [pimport] => Array ( [name] => Fe.gif [type] => [tmp_name] => [error] => 3 [size] => 0 ) )


et le fichier mime.types contient bien multipart/form-data
karo91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2006, 16h57   #19
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Dans le php.ini, quel est le nom de ton dossier temporaire ?

Citation:
upload_tmp_dir = répertoire permet de définir le répertoire temporaire permettant d'accueillir le fichier uploadé.
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2006, 23h24   #20
Invité de passage
 
Inscription : novembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 9
Points : 1
Points : 1
J'avais lu que si on ne choississait pas de répertoire temporaire le repertoire temp serait mis par défaut.
J'ai quand même décidé de le mettre moi même dans le php.ini pour voir et après avoir relancé apache ca n'a rien changé.

Il semblerait qu'il y ai eu un problème lors de l'installation d'apache ou php, j'ai contacté mon hébergeur ils interviendront demain. Je vous dirais si ca a fonctionné
Merci encore pour votre aide
karo91 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 23h13.


 
 
 
 
Partenaires

Hébergement Web