Php 多文件上载foreach错误
我以前多次使用过下面的代码,最近发现它可以再次尝试使用。现在似乎有一个错误,我无法修复,谁能看到我做错了什么Php 多文件上载foreach错误,php,file,upload,Php,File,Upload,我以前多次使用过下面的代码,最近发现它可以再次尝试使用。现在似乎有一个错误,我无法修复,谁能看到我做错了什么 foreach ($_FILES['image']['name'] as $i => $name) { $uploadfile = $uploaddir . basename($name); if (!move_uploaded_file($file_post["tmp_name"][$i],$uploadfile)) { e
foreach ($_FILES['image']['name'] as $i => $name) {
$uploadfile = $uploaddir . basename($name);
if (!move_uploaded_file($file_post["tmp_name"][$i],$uploadfile))
{
echo set_e('error','Image ['.$i.'] not uploaded','');
}
}
我得到的错误是
Warning: Invalid argument supplied for foreach() in /sitefolder/functions.php on line 1096
第1096行是第一个代码框中的第一行。首先,在不检查数组键是否存在的情况下,切勿使用数组键。把代码包起来
if (array_key_exists('image', $_FILES))
{
// ...
}
else
{
// error handling
}
其次,即使键存在,$\u文件['image']['name']
也应该是字符串,但无论如何,您不能将其馈送到foreach
。更好:
foreach ($_FILES as $file)
{
$uploadfile = $uploaddir . basename($file['name']);
if (!move_uploaded_file($file["tmp_name"], $uploadfile))
{
echo set_e('error','Image ['.$i.'] not uploaded','');
}
}
首先,在不检查数组键是否存在的情况下,永远不要使用它们。把代码包起来
if (array_key_exists('image', $_FILES))
{
// ...
}
else
{
// error handling
}
其次,即使键存在,$\u文件['image']['name']
也应该是字符串,但无论如何,您不能将其馈送到foreach
。更好:
foreach ($_FILES as $file)
{
$uploadfile = $uploaddir . basename($file['name']);
if (!move_uploaded_file($file["tmp_name"], $uploadfile))
{
echo set_e('error','Image ['.$i.'] not uploaded','');
}
}
Hi尝试了原始代码,并尝试了我添加的编辑,但仍然没有work@Ben:你能解释一下“不起作用”是什么意思吗?
$\u文件的print\u r()
也可以提供一些细节。我的意思是它显示错误消息集(…)。此外,打印结果返回为空。。。Array()标记上有enctype=“multipart/form data”吗?我在看到数组为空后添加了它。还可以将表单输入元素从数组更改为数组。他们现在正在上传,只是需要把代码从tmp文件夹中移走。谢谢你的帮助。我尝试了原始代码,并尝试了我添加的编辑,但仍然没有work@Ben:你能解释一下“不起作用”是什么意思吗?$\u文件的print\u r()
也可以提供一些细节。我的意思是它显示错误消息集(…)。此外,打印结果返回为空。。。Array()标记上有enctype=“multipart/form data”吗?我在看到数组为空后添加了它。还可以将表单输入元素从数组更改为数组。他们现在正在上传,只是需要把代码从tmp文件夹中移走。谢谢你的帮助