Impossible de lire $_FILES

Résolu
Kopros Messages postés 595 Date d'inscription   Statut Membre Dernière intervention   -  
Kopros Messages postés 595 Date d'inscription   Statut Membre Dernière intervention   -
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

__construct()
 
Bonsoir,
As-tu essayé comme ceci :
var_dump($_FILES);
0
Kopros Messages postés 595 Date d'inscription   Statut Membre Dernière intervention   89
 
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