2009-10-26 4 views
2

J'essaie d'obtenir un fichier téléchargé via un script PHP, mais mon tableau $ _FILES est toujours vide? Mon $ _POST entrée de données pour l'élément d'entrée HTML du fichier a le nom de fichier ... Juste aucun fichier n'est créé sur mon système local.

J'ai vérifié l'accès en écriture au dossier temporaire et explicite le définir. J'ai vérifié phpinfo() pour m'assurer que les téléchargements de fichiers sont activés, et ils le sont.

Qu'est-ce qui pourrait empêcher cela? Mod_rewrite causerait-il quelque chose?

Merci!

Répondre

14

Lorsque vous avez la bonne enctype (<form method="post" enctype="multipart/form-data">), puis vérifiez la variable errno dans _FILES $, il existe plusieurs causes possibles de défaillance. La valeur par défaut est MAX_FILE_SIZE.

http://php.net/manual/en/features.file-upload.errors.php

Depuis PHP 4.2.0, PHP renvoie un code d'erreur approprié ainsi que le tableau de fichiers . Le code d'erreur peut être trouvé dans le segment d'erreur du fichier tableau qui est créé au cours du fichier télécharger par PHP. En d'autres termes, l'erreur peut être trouvée dans $ _FILES ['userfile'] ['erreur'].

UPLOAD_ERR_OK Valeur: 0; Il n'y a pas d'erreur , le fichier téléchargé avec succès.

UPLOAD_ERR_INI_SIZE Valeur: 1; Le fichier téléchargé dépasse la directive upload_max_filesize dans php.ini .

UPLOAD_ERR_FORM_SIZE Valeur: 2; Le fichier envoyé dépasse la directive MAX_FILE_SIZE qui était spécifiée dans le formulaire HTML.

etc.

+0

print_r ($ _FICHES) aboutit à array() ... Donc malheureusement, ces données ne sont pas disponibles. J'ai cependant enctype = "multipart/form-data" dans mon formulaire. –

+0

J'ai regardé de plus près - bizarrement sur un écran de plus basse résolution pour le rendre encore plus drôle - et il y avait une faute de frappe dans mon code. C'est encore plus ironique étant donné que certaines des premières solutions que j'ai trouvées en regardant cela ont dit "attention aux fautes de frappe". Alors ... Tout simplement ... Il y a tellement de choses à faire ici, attention aux fautes de frappe! Merci pour tous les coups de pied dans le pantalon tout le monde :) –

12

Définissez-vous l'enctype dans votre formulaire?

<form method="post" enctype="multipart/form-data"> 

Aucun fichier ne sera téléchargé si vous ne le définissez pas.

+0

Oui, je réponds à un fil très vieux, mais ce fut mon erreur exacte et solution. –

3

Est-ce que le formulaire a le bon enctype?

enctype="multipart/form-data"