2010-08-04 5 views
7

Cela me rend fou. J'essaie de comprendre comment télécharger un fichier. J'ai deux fichiers très simples, mais cela ne semble pas fonctionner. Ce premier est le fichier qui permet à l'utilisateur de choisir le fichier:

<html> 
<head> 
<title>File Upload Form</title> 
</head> 
<body> 
This form allows you to upload a file to the server.<br> 

<form action="getfile.php" method="post"><br> 
Type (or select) Filename: <input type="file" name="uploadFile"> 
<input type="submit" value="Upload File"> 
</form> 
</body> 
</html> 
</code> 

Le second est le fichier php qu'il gère:

<html> 
<head> 
<title>Process Uploaded File</title> 
</head> 
<body> 
<?php 

print_r($_FILES); 
print "<P>\n"; 

move_uploaded_file ($_FILES['uploadFile'] ['tmp_name'], 
     "../blimages/site/7337/{$_FILES['uploadFile'] ['name']}") 

?> 
</body> 
</html> 

Depuis - à l'exception du print_r - j'ai tiré ces hors un tutoriel de site Web sur la façon de faire un téléchargement de fichier, je pense que ces fichiers sont d'accord. Le print_r($FILES) renvoie un tableau complètement vide. J'ai également vérifié php.ini. Les téléchargements de fichiers sont autorisés, et la taille maximale est de 2 Mo, ce que je suppose est de 2 mégaoctets, ce qui est beaucoup plus grand que le fichier que j'ai essayé de télécharger.

Quoi d'autre pourrait être faux?

Merci,

Sean.

+0

Ne pas oublier d'indiquer que l'on a travaillé pour vous en cliquant sur la coche à côté de la réponse :) –

Répondre

25

Ajoutez l'attribut approprié enctype à votre balise form:

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

Il est documenté ici: http://www.php.net/manual/en/features.file-upload.post-method.php

Aussi, assurez-vous qu'il n'y a pas d'espace entre vos supports lorsque vous accédez à des tableaux multidimensionnels:

$_FILES['uploadFile']['tmp_name'] 
+0

Le enctype était exactement le problème. Je vous remercie. Si l'autre n'avait pas été à partir d'un site Web tutoriel et être censé travailler .. soupir. Sean. – Sean

+0

Content de vous aider. C'est une erreur très commune. Si vous pensez que c'est la bonne/bonne réponse, n'oubliez pas de la corriger en cochant la case verte. –

+0

@Sean - ne vous inquiétez pas. C'est l'erreur du débutant classique quand il s'agit de télécharger des fichiers HTML. C'est une de ces choses que vous connaissez ou ne connaissez pas, l'intuition est inutile ici. –

1

Vous avez utilisé l'attribut d'utilisation enctype="multipart/form-data" en formulaire tag.

0

Ajouter que dans la balise Form

enctype = « multipart/form-data »

Questions connexes