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