我想在现有的Wordpress插件中添加一个上传功能。但文件似乎无法加载。我以以下形式使用这段代码:
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
// other code of existing plugin.
<input type="submit" value="plugin submit" id="plugin submit" name="plugin submit">
</form>
然后在插件的函数中,我放入了测试行,以了解发生了什么:
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
我输入else分支,但所有字段都是空的。我错过了什么?
即使$_FILES
未定义,也会触发else分支。
您可以先检查用户是否上传了文件。
is_uploaded_file()
如果以filename命名的文件是通过HTTP POST上传的,返回TRUE。
你可以这样写:if(is_uploaded_file($_FILES['file']['tmp_name'])
但是,既然这似乎不会返回TRUE
在你的情况下,我必须问-因为你的形式是POST
到相同的页面,它是在-你的PHP代码在页面的顶部,你的形式驻留?如果是这样的话,你不觉得它在你上传之前就输出空白的上传信息很奇怪吗?