限制所选文件的数量

时间:2011-07-04 17:27:44

标签: php html file select

我有一个脚本,让用户在按住CTRL的同时选择多个图像,然后将它们上传到服务器。我需要将所选图像的数量限制为10,因此当用户提交表单时,如果图像超过10张,则会出错。

我该怎么做?

P.S:我的foreach循环看起来像这样:

foreach ($_FILES['file']['tmp_name'] as $key => $tmp_name)

欢迎使用PHP解决方案。因为我不相信javascript和jquery。

修改

这是我的脚本:http://pastebin.com/76NiNB6D

2 个答案:

答案 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