我有一个脚本,让用户在按住CTRL的同时选择多个图像,然后将它们上传到服务器。我需要将所选图像的数量限制为10,因此当用户提交表单时,如果图像超过10张,则会出错。
我该怎么做?
P.S:我的foreach循环看起来像这样:
foreach ($_FILES['file']['tmp_name'] as $key => $tmp_name)
欢迎使用PHP解决方案。因为我不相信javascript和jquery。
修改
这是我的脚本:http://pastebin.com/76NiNB6D
答案 0 :(得分:1)
您的循环正在尝试遍历字符串。也许你的意思是:
$number_of_files = 0;
foreach ($_FILES as $file)
{
if ($file['error'] == 0)
{
// file uploaded successfully
$number_of_files++;
}
}
if ($number_of_files > 10)
{
die('You uploaded too many files!');
} else {
foreach ($_FILES as $file)
{
if ($file['error'] == 0)
{
copy_the_file_to_destination(); // left as an excercise for the reader ;-)
}
}
}
您可以执行count($_FILES);
,但它会计算所有文件输入,即使是空的。
答案 1 :(得分:0)
我发现我现在正在寻找自己的PHP答案! :d。我做的是以下内容:
我检查了Carlos的答案并在循环外放置了一个值为0的变量。然后我像卡洛斯那样创建了错误检查:if ($file['error'] == 0)
然后我再次做了卡洛斯在IF语句中所做的事情$number_of_files++;
现在我走出循环并做了这个:
if ($uploaded > 10)
{
unlink($image);
unlink($thumb);
if ($resize) { unlink($res); }
}
这将自动删除第11张图像,并在我的服务器中保留10张图像。
感谢Carlos提供的所有信息,我认为我把它结合得很好:P