2009-08-28 6 views
5

lors du téléchargement Lorsque vous essayez d'accéder au tableau $_FILES, PHP renvoie l'erreur

"Undefined index: image".

Dans mon dossier php.ini, File Uploads sont activés, et tout utilisateur peut écrire dans le répertoire /tmp. Dans le formulaire HTML, enctype est défini sur "multipart/form-data". Chose intéressante, le nom de base du fichier téléchargé s'imprime donc je crois que PHP a effectivement vu le fichier, mais il a un problème de téléchargement. Quelqu'un peut-il fournir des suggestions sur les solutions potentielles à ce problème? Au fait, j'utilise PHP5.

Snippets de fichier PHP

echo "Picture=" . $_POST['picture'] . "<br/>"; 
$uploadedPic = $_FILES['picture']['tmp_name']; 

formulaire HTML

<form action="PHPFile.php" method="post" enctype="multipart/form-data"> 

<p> Picture </p> 
<input type = "file" id="picture" name="picture"/> 

</form> 
+2

avez-vous essayé var_dumping vos $ _FILES? – n1313

+1

Avez-vous déjà utilisé Javascript pour sérialiser votre formulaire? – JorenB

+3

est post_max_size et upload_max_filesize dans votre php.ini réglé à une valeur assez grande? – Zed

Répondre

6

Sur quelle ligne vous obtenez cet avertissement? S'il est celui avec $_POST['picture'], sa logique, vous ne trouverez pas les données de fichiers téléchargés dans $_POST, il est en $_FILES

+1

Sur un sidenote .... vous voudrez vérifier si $ _SERVER ['REQUEST_METHOD'] == 'POST' si vous téléchargez un fichier dans votre formulaire et ne soumettez pas d'autres données – SeanJA

1
echo "Picture=" . $_POST['picture'] . "<br/>"; 

La variable POST

$_POST['picture'] 

n'existe pas, donc oui, ça va donner une erreur indéfinie.

0

Je ne peux pas commenter, donc je vais le dire ici. MAN, cet écho affichera le nom du fichier! Ça marche! Il a dit que ça fonctionnait.

Chose intéressante, le nom de base pour les impressions de fichiers téléchargés je crois que PHP a réellement vu le fichier [...]

Un bon conseil: essayez de var_dump le $_FILES et ajouter ici, il est Contenu. Vous pouvez avoir une erreur car le fichier est trop volumineux ou d'autres informations utiles.

0

Quel niveau ou rapport d'erreurs utilisez-vous? error_reporting(E_ALL) activera le rapport complet et pourrait vous donner un indice. Comme décrit précédemment, faites une impression de $_FILES avec var_dump() ou print_r() pour voir les informations correspondant à votre fichier.

-2

essayer d'ajouter

<input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 

avant

<input type = "file" id="picture" name="picture"/> 
0

lol, une affiche précédente dit que le redémarrage de leur serveur fixe il. J'ai fait la même chose, et pour une raison quelconque, cela fonctionne. Je n'ai fait aucun changement de code, et les réinitialisations d'IIS n'ont pas fonctionné non plus. il a fallu redémarrer l'ordinateur lui-même. C'est environ 2 heures complètement perdu.