尝试执行文件上载时$ _FILES为空

时间:2010-08-04 13:18:53

标签: php

这让我发疯了。我正在试图弄清楚如何上传文件。我有两个非常简单的文件,但它似乎不起作用。第一个是允许用户选择文件的文件:

<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>

第二个是处理它的php文件:

<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>

由于 - 除print_r之外 - 我从网站教程中删除了如何进行文件上传,我认为这些文件没问题。

print_r($FILES)返回一个完全空的数组。

我还检查了php.ini。允许文件上传,最大大小为2M,我假设它是2兆字节,远远大于我试图上传的文件。

还有什么可能是错的?

谢谢,

肖恩。

3 个答案:

答案 0 :(得分:27)

form标记中添加正确的enctype属性:

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

这里记录了:http://www.php.net/manual/en/features.file-upload.post-method.php

此外,当您访问多维数组时,请确保括号之间没有空格:

$_FILES['uploadFile']['tmp_name']

答案 1 :(得分:1)

您应该在表单标记中使用属性enctype="multipart/form-data"

答案 2 :(得分:0)

在表格标签中添加

ENCTYPE = “多部分/格式数据”