Php 多文件上载上的foreach未在出现错误时停止

Php 多文件上载上的foreach未在出现错误时停止,php,arrays,foreach,Php,Arrays,Foreach,我是一个非常大的php新手。希望你能体谅我: 我有这个脚本和一个小问题。如果选择的文件是图像,我想在第一个foreach部分中进行检查。如果文件是图像,并且不是很大,那么应该允许上传 但首先检查所有图像是很重要的 我的问题是,例如: 在inputfield 1中,我放置了一个1mb的图像 在inputfield 2中,我放置了一个文本文件 当我按submit时,输入的第一个图像正在移动到文件夹中,然后在文本文件上停止,出现错误您可以使用break;并继续,;导航循环。不确定您想要的结果是什么。检

我是一个非常大的php新手。希望你能体谅我:

我有这个脚本和一个小问题。如果选择的文件是图像,我想在第一个foreach部分中进行检查。如果文件是图像,并且不是很大,那么应该允许上传

但首先检查所有图像是很重要的

我的问题是,例如:

在inputfield 1中,我放置了一个1mb的图像

在inputfield 2中,我放置了一个文本文件


当我按submit时,输入的第一个图像正在移动到文件夹中,然后在文本文件上停止,出现错误您可以使用break;并继续,;导航循环。不确定您想要的结果是什么。

检查图像时,最好不要依赖扩展。您可以执行以下操作来验证图像类型:

$info   = getimagesize($_FILES['image']['tmp_name']);
$mime   = $info['mime'];

$mime现在应该包含一个字符串,如image/jpeg。这里有一个链接,指向一个列表。

如果我理解正确的话

选择这个

并将其替换为

还可以找到以下代码:

并将其替换为:

并从

对此

或者,当您需要对图像的引用时


请在你的问题中添加以下段落:1。期望的结果是什么?2.出了什么问题?如果你是这个意思,那就不是php错误了!为了更好地理解,我编辑了这个问题。。我希望是D
$info   = getimagesize($_FILES['image']['tmp_name']);
$mime   = $info['mime'];
$upload_ok=array();

foreach($_FILES as $key => $file)
        {
        $validExtensions = array('.jpg', '.jpeg', '.gif', '.png');
        $fileExtension = strtolower(strrchr($file['name'], "."));

        if ((in_array($fileExtension, $validExtensions) && ($file['error'] == 0))||$file['error'] == 4)
                {
                $upload_ok=true;
                echo('true');
                }
        else
                {
                $upload_ok=false;
                $result=false;
                echo('false');
                }
        }
// if(!in_array(false ,$upload_ok))
$error = false;
$validExtensions = array('.jpg', '.jpeg', '.gif', '.png');

foreach(array_keys($_FILES['fileToUpload']['name']) as $key){
    if($_FILES['fileToUpload']['error'][$key] == 4) continue;
    $fileExtension = strtolower(strrchr($_FILES['fileToUpload']['name'][$key], "."));
    $error |= ! in_array($fileExtension, $validExtensions);
    $error |= ! $_FILES['fileToUpload']['error'][$key] == 0;
    if($error){
        $result=false;
        break;
    }
}
// if(!in_array(false ,$upload_ok))
if ($upload_ok == true)
        {
        foreach($_FILES as $key => $file)
                {
                if ($file['error'] == 0)
                        {
                        $newNamePrefix = $picName . '_';
                        $CounterPrefix = sprintf("%02d",(preg_replace("/[^0-9]/","", $key)));
                        $fileExtension = strtolower(strrchr($file['name'], "."));
                        $manipulator = new ImageManipulator($file['tmp_name']);
                        $newImage = $manipulator->resample(1024, 1024);
                        $manipulator->save($imgRoot . $maschineFolder . $picFolder . $newNamePrefix . $CounterPrefix . $fileExtension);
                        }
                }
        }
if ($error === 0){
    foreach(array_keys($_FILES['fileToUpload']['name']) as $key){
        if ($_FILES['fileToUpload']['error'][$key] == 0){
            $newNamePrefix = $picName . '_';
            $CounterPrefix = sprintf("%02d",(preg_replace("/[^0-9]/","", $key)));
            $fileExtension = strtolower(strrchr($_FILES['fileToUpload']['name'][$key], "."));
            $manipulator = new ImageManipulator($_FILES['fileToUpload']['tmp_name'][$key]);
            $newImage = $manipulator->resample(1024, 1024);
            $manipulator->save($imgRoot . $maschineFolder . $picFolder . $newNamePrefix . $CounterPrefix . $fileExtension);
        }
    }
}
<input type="file" name="fileToUpload1" id="fileToUpload1" accept="image/*" />
<input type="file" name="fileToUpload2" id="fileToUpload2" accept="image/*" />
<input type="file" name="fileToUpload3" id="fileToUpload2" accept="image/*" />
<input type="file" name="fileToUpload[]" accept="image/*" />
<input type="file" name="fileToUpload[]" accept="image/*" />
<input type="file" name="fileToUpload[]" accept="image/*" />
<input type="file" name="fileToUpload[1]" accept="image/*" />
<input type="file" name="fileToUpload[2]" accept="image/*" />
<input type="file" name="fileToUpload[3]" accept="image/*" />