我正在使用此代码处理上传的文件:
mkdir("files/" . $id, 0700);
$path = "files/" . $id;
$count = 0;
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
foreach($_FILES['attachments']['name'] as $f => $name)
{
if($_FILES['attachments']['error'][$f] == 4)
{
continue;
}
if($_FILES['attachments']['error'][$f] == 0)
{
if(move_uploaded_file($_FILES["attachments"]["tmp_name"][$f], $path.$name))
{
$count++;
}
}
}
}
$id
是从数据库中取出的随机数。此外,我正在使用这个标记:
<input type="file" id="attachments" name="attachments[]" multiple="multiple" accept="*">
虽然之前完全相同的代码运行得非常出色,但它现在抛出了一些我无法推断的错误:
1:mkdir():文件存在于......在线...(&lt; - 现在,它不是理所当然的!)
2:未定义的索引:...在线上的附件...(好吧,它也使用表格方法发布!) 3:为......中的foreach()提供的参数无效...(由于上述错误确实阻止了foreach正确地完成其工作,因此非常清楚)
是的,我确保我实际使用POST
。我也尝试将文件输入的名称从attachments
更改为任何其他名称,但情况保持不变。
添加enctype="multipart/form-data"
已经完成了。
答案 0 :(得分:0)
1]检查文件夹权限0777.您能够创建目录的天气
2]发表表格后。确保您的表单具有enctype = multipart / form-data标记。 在你的文件中,请检查
echo "<pre>";
print_r($_FILES);
exit;
如果您收到任何数据?如果获取数据然后继续前进。
答案 1 :(得分:0)
首先检查您的$ id是否确实包含某些内容,其次,您的表单应具有enctype = multipart/form-data
属性,以便使用输入类型文件。
<form action="test.php" method="post" enctype="multipart/form-data">
现在,在您执行任何工作之前,您将获得一系列文件,请参阅附件的print_r:
echo "<pre>";
print_r($_FILES);
exit;