Page 1 sur 6
probleme avec upload via php
Posté : 31 août 2009, 10:02
par boblenain
Bonjour,
je suis face à un problème qui me titille depuis une semaine... Je dois créer un espace où les gens peuvent uploader leur fichiers de la façon la plus simple qui soit. Avec beaucoup de recherches et de tests de code, j'ai pour certitude que les données sont uploadées mais pas déplacées vers le répertoire dans lequel je veux les voir. Pour le vérifier j'ai donc fait un petit phpinfo() et je vois ça :
upload_tmp_dir - no value
Que puis-je faire?
Merci d'avance.
Re: probleme avec upload via php
Posté : 31 août 2009, 10:16
par Berzemus
Tout est bon niveau droits d'accès, sur le serveur, dans les répertoires concernés ?
Re: probleme avec upload via php
Posté : 31 août 2009, 10:17
par charabia
Bonjour,
Je pencherais plus vers un des ces problèmes : répertoire de destination inaccessible en écriture pour le serveur web ou chemin(s) incorrect(s).
edit : grilled
Re: probleme avec upload via php
Posté : 31 août 2009, 10:26
par boblenain
Merci tout d'abord pour vos réponses rapides.
charabia : concrétement je peux faire quoi si c'est bien ça?
Re: probleme avec upload via php
Posté : 31 août 2009, 10:32
par charabia
Rectifier les droits d'accès sur le répertoire en question et vérifier que le chemin est le bon.
Re: probleme avec upload via php
Posté : 31 août 2009, 10:39
par boblenain
bon, je viens de faire le test de la mort : vérifier mes autorisations et je n'arrive pas à changer le chmod de mon répertoire avec filezilla, j'imagine donc qu'il y a des restrictions de mon hébergeur....
Re: probleme avec upload via php
Posté : 31 août 2009, 10:43
par charabia
c'est possible en effet. Quels sont les droits actuels ?
Re: probleme avec upload via php
Posté : 31 août 2009, 11:00
par boblenain
J'ai un chmod de 755.
Re: probleme avec upload via php
Posté : 31 août 2009, 11:10
par charabia
ah avec un 755 ça devrait fonctionner normalement. Vérifies dans ce cas le chemin pour voir s'il est correct.
Re: probleme avec upload via php
Posté : 31 août 2009, 11:34
par boblenain
Voilà le code de mon formulaire qui renvoie le fichier upload.php :
<FORM method="POST" action="[upload.php]" ENCTYPE="multipart/form-data">
<INPUT type=hidden name=MAX_FILE_SIZE VALUE=2048>
<INPUT type=file name="nom_du_fichier">
<INPUT type=submit value="Envoyer">
</FORM>
et pour avoir les infos du chemin j'ai fait ça :
<pre><? print_r($_FILES); ?></pre>
au final j'ai comme retour :
Array
(
[nom_du_fichier] => Array
(
[name] => monimage.jpg
[type] =>
[tmp_name] =>
[error] => 2
[size] => 0
)
)
j'arrive pas à avoir le nom du chemin...
Re: probleme avec upload via php
Posté : 31 août 2009, 11:44
par charabia
L'erreur "2" correspond au dépassement du poids autorisé. Tu permets l'upload de fichier de 2ko max.
Et c'est quoi ces accolades dans le form ?
Sinon ton code n'est pas très conforme, n'oublies pas les guillemets, mets en minuscules...etc
Utilises <?php ... ?> et non <? ... ?>
Re: probleme avec upload via php
Posté : 31 août 2009, 13:04
par boblenain
effectivement je n'avais pas vu pour la taille des fichiers !
après correction a commande print_r me retourne ceci
Array
(
[nom_du_fichier] => Array
(
[name] => mon image.jpg
[type] => image/jpeg
[tmp_name] => C:\WINDOWS\Temp\php39F.tmp
[error] => 0
[size] => 146198
)
)
ça y est j'ai mon chemin mais je suis pas vraiment sûr de pouvoir exploiter cette donnée correctement puisqu'il s'agit d'un chemin sur un disque, non?
Re: probleme avec upload via php
Posté : 31 août 2009, 13:10
par Dr@ke
Array
(
[nom_du_fichier] => Array
(
[name] => 'mon image.jpg',
[type] => 'image/jpeg',
[tmp_name] => 'C:\WINDOWS\Temp\php39F.tmp',
[error] => 0,
[size] => 146198,
)
)
Déjà mais sans vouloir être chiant:
Sous balises Php, c'est plus lisible et surtout entre
' et
, c'est plus Safe...
Re: probleme avec upload via php
Posté : 31 août 2009, 13:22
par FuZZyLine
Salut,
effectivement je n'avais pas vu pour la taille des fichiers !
après correction a commande print_r me retourne ceci
Array
(
[nom_du_fichier] => Array
(
[name] => mon image.jpg
[type] => image/jpeg
[tmp_name] => C:\WINDOWS\Temp\php39F.tmp
[error] => 0
[size] => 146198
)
)
ça y est j'ai mon chemin mais je suis pas vraiment sûr de pouvoir exploiter cette donnée correctement puisqu'il s'agit d'un chemin sur un disque, non?
Ton problème est résolu... si, si

La clef tmp_name est celle que tu dois indiquer à ta fonction de transfert.
Ce qui peut s'écire ainsi:
// ou DEFINE_FILE est le nom de la clef <nom_du_fichier> contenu dans ton form.
// ou $strDirectory est ton path [*]
// .
// .
// .
$arrayFiles = $_FILES[DEFINE_FILE];
move_uploaded_file($arrayFiles['tmp_name'], $strDirectory.$arrayFiles['name']);
// .
// .
// .
voili, voilou... Te reste plus qu'à essayer le upload multiple lol
@+
PS: @Dr@ke
sans vouloir être chiant:
Array
(
[nom_du_fichier] => Array
(
[name] => 'mon image.jpg',
[type] => 'image/jpeg',
[tmp_name] => 'C:\WINDOWS\Temp\php39F.tmp',
[error] => 0,
[size] => 146198,
)
)
Sous balises Php, c'est plus lisible et surtout entre
' et
, c'est plus Safe...
Sauf que c'était pas du code mais le résultat d'un print_r... de plus t'as ajouté un
, qui est en trop.
EDIT: [*] ajout pour être plus clair

Re: probleme avec upload via php
Posté : 31 août 2009, 13:47
par Dr@ke
Ok Désolé, j'avais mal lu, je comprend mieux maintenant...