【问题标题】:$_FILES empty when trying to do a file upload尝试上传文件时 $_FILES 为空
【发布时间】:2010-08-04 13:18:53
【问题描述】:

这快把我逼疯了。我试图弄清楚如何上传文件。我有两个非常简单的文件,但它似乎不起作用。这首先是允许用户选择文件的文件:

<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 兆字节,这比我尝试上传的文件大得多。

还有什么问题?

谢谢,

肖恩。

【问题讨论】:

  • 不要忘记点击答案旁边的勾号来指出哪一个对你有用:)

标签: php


【解决方案1】:

将正确的 enctype 属性添加到您的 form 标签:

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

【讨论】:

  • enctype 正是问题所在。谢谢你。如果另一个不是来自教程网站并且应该工作..叹息。肖恩。
  • 很高兴为您提供帮助。这是一个非常常见的错误。如果您认为这是正确/最佳答案,请不要忘记使用绿色复选标记将其标记为正确。
  • @Sean - 别担心。这是 HTML 文件上传时的经典初学者错误。这是你知道或不知道的事情之一,直觉在这里毫无用处。
【解决方案2】:

你应该在form标签中使用enctype="multipart/form-data"属性。

【讨论】:

    【解决方案3】:

    在表单标签中添加它

    enctype="multipart/form-data"

    【讨论】:

      猜你喜欢
      • 2016-10-15
      • 2013-03-21
      • 2021-04-30
      • 2015-01-01
      • 2019-11-25
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      相关资源
      最近更新 更多