我正在尝试从HTML5多文件上传器循环遍历多个上传的文件。我正在使用foreach循环,但由于某种原因,它没有正确迭代我的文件。这个foreach循环应该做4件事之一。
1)如果文件大小超过500kb和jpeg,它会重新调整照片的大小并将其上传到images目录并将记录添加到数据库中。
2)如果文件大于500kb和png,它会将照片转换为jpeg,重新调整大小并将其上传到images目录并将记录添加到数据库中。 (注意:我的图像大小调整脚本只处理jpegs)。
3)如果文件大于5MB,请跳过照片并继续下一个循环。
3)如果文件小于500kb,它会将照片上传到images目录并将记录添加到数据库中。
现在,我可以让图像重新调整大小没有问题,但是对于png或照片大于5MB的照片我有问题。出于某种原因,如果它们是数组中的第一个元素,则循环仅跳过大于5MB的照片,但如果它们位于中间或末尾则不会。我使用错误的方法来调用和测试我的Array元素吗?
我的PHP代码:
foreach ($_FILES['uploads']['name'] as $key => $file) {
$time= time();
// checking the photo's size
if ($_FILES['uploads']['size'][$key] > 500000 && $_FILES['uploads']['size'][$key] < 5242880) {
// check to make sure the file is a jpeg
if ($_FILES['uploads']['type'][$key] == "image/jpeg") {
// resizing the photo
include('resize_albums.php');
}
else if ($_FILES['uploads']['type'][$key] == "image/png") {
// making the image a jpeg if it isn't already
$image = imagecreatefrompng($_FILES['uploads']['tmp_name'][$key]);
imagejpeg($image, $_FILES['uploads']['tmp_name'][$key], 100);
// resizing the file
include('resize_albums.php');
}
}
else if ($_FILES['uploads']['size'][$key] > 5242880) {
continue;
}
else {
// upload the photo and add the record to the database
}
}