是,已设置enctype
属性。其他表单/表单hanlders工作正常,因此临时目录必须是可写的。我没有想法。
我检查了帖子值并且$_POST['file']
存在并包含文件名。
这是我的表单和处理它的PHP。我错过了什么?
<form action='orl_ftp.php' method='post' enctype='multipart/form-data'>
<table>
<tr>
<td>Choose File: </td>
<td><INPUT type='file' id='file' name='file'></td>
</tr>
<tr>
<td> </td>
<td><INPUT type='submit' name='Submit' value='Process'></td>
</tr>
</table>
</form>
以及相关的PHP代码。请注意,$ _FILES数组已设置,它只是为空。
if(isset($_POST['Submit'])){
$upload_results = "";
if(!isset($_FILES)){$upload_results .= "No files uploaded"; }
if($upload_results == ""){
echo "<pre>";
var_dump($_FILES);
exit;
// ...
}
}
答案 0 :(得分:4)
您在同一个脚本中有多个表单,因此每个表单都需要enctype='multipart/form-data'
此外,它似乎不会关闭第一个表单,并且<form ... />
无法使用有效的HTML。
答案 1 :(得分:2)
第101行:
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" />
^
这导致了问题,浏览器保持此窗体打开,因此缺少enctype
是问题。正确删除或关闭此表单。
示例:
<?php
if(isset($_POST['Submit'])){
$upload_results = "";
if(!isset($_FILES)){$upload_results .= "No files uploaded"; }
if($upload_results == ""){
echo "<pre>";
var_dump($_FILES);
exit;
}
}
?>
<form action='' method="post" />
<form action='' method='post' enctype='multipart/form-data'>
<table>
<tr>
<td>Choose File: </td>
<td><INPUT type='file' id='file' name='file'></td>
</tr>
<tr>
<td> </td>
<td><INPUT type='submit' name='Submit' value='Process'></td>
</tr>
</table>
</form>
这不会发布任何文件。