Impossible de lire $_FILES

Résolu/Fermé
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - Modifié par Kopros le 5/02/2011 à 19:44
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - 6 févr. 2011 à 01:12
Salut à tous

En php, je ne parviens pas à lire $_FILES pour uploader un fichier.
Voici mon code :

Page HTML :
<form action="action.php" method="post" enctype="multipart/form-data">  
 <input type="hidden" name="MAX_FILE_SIZE" value="2097152">  
 <input type="file" name="testfile" />  
 <input type="submit" value="tester" />  
</form>


Page php (action.php) :
<?php  
echo $_FILES;  
?>



Au lieu de m'afficher le contenu de l'array avec toutes les infos sur le fichier, la page action.php affiche "Array" et c'est tout. Du coup je peux encore moins uploader un fichier

J'ai vérifié le php.ini de mon server, file_uploads = On et j'accepte des fichiers assez gros (jusqu'a 20M). P'tet que y'a un paramètre que j'ai pas pensé qui empêche l'upload, mais ça m'étonnerait parce que j'ai un autre site sur le même serveur et l'input file upload nickel sur cet autre site.

Je vois pas ce qui cloche, et ça fait quelques heures que je m'arrache les cheveux avec cette histoire... Ca m'aiderait franchement que quelqu'un trouve une piste ou un début de solution (je ne crache pas non plus sur une solution toute faite ^^)

Merci d'avance



A voir également:

2 réponses

Bonsoir,
As-tu essayé comme ceci :
var_dump($_FILES);
0
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 89
Modifié par Kopros le 6/02/2011 à 01:26
Je viens d'essayer et ça marche, l'array s'affiche bien. Je ne connaissais pas var_dump, merci !

Pour récupérer l'image, j'ai utilisé basename et move_uploaded_file, mais là ça ne marche pas...

$uploaddir=dirname(__FILE__).'/test/'; 
$tmpname=basename($_FILES['image_local']['tmp_name']); 
$uploadfile = $uploaddir . basename($_FILES['image_local']['name']); 
echo $uploadfile.'<br />'; 
echo $tmpname.'<br />'; 

if (move_uploaded_file($tmpname, $uploadfile)) { 
 echo 'ok'; 
} 
else { 
 echo "Impossible de télécharger l'image"; 
}


$uploadfile et $tmpname contiennent les bonnes valeurs, mais le résultat est toujours "Impossible de télécharger l'image". J'ai vérifié les droits sur le répertoire ça ne vient pas de là.
L'erreur doit venir d'un truc que j'ai oublié de spécifier mais je ne vois vraiment pas...


EDIT : c'est bon j'ai trouvé, en fait faut pas mettre le basename pour tmp_file et ça marche... je croyais que c'est ce que j'avais fait en premier mais je devais alors avoir une autre erreur qui empechait l'upload.

En tout cas merci à Construct de t'être penché un peu sur mon problème :)

Donc dans mon code, j'ai remplacé :
$tmpname=basename($_FILES['image_local']['tmp_name']); 

par :
$tmpname=$_FILES['image_local']['tmp_name']; 
0