Правильная процедура цикла foreach с изменением размера изображения
Только одно из уменьшенных изображений сохраняется в папку этого сценария, даже если загружаются несколько изображений. Я думаю, это должно быть связано с итерацией цикла foreach. Это только скрипт изменения размера, размещенный ниже. У кого-нибудь есть быстрое решение? Спасибо
define('THUMBS_DIR', 'C: /inetpub / wwwroot / mysite / images / thumbs / ');
define('MAX_WIDTH', 90);
define('MAX_HEIGHT', 100);
if (array_key_exists('upload', $_POST))
{
$original = $_FILES['image']['tmp_name'];
foreach ($original as $number => $tmp_file)
{
$original = ($tmp_file);
}
if (!$original)
{
echo 'NoImageSelected';
}
} else {
list($width, $height, $type) = getimagesize($original);
if ($width <= MAX_WIDTH && $height <= MAX_HEIGHT)
{
$ratio = 1;
} elseif ($width > $height) {
$ratio = MAX_WIDTH/$width;
} else {
$ratio = MAX_HEIGHT/$height;
}
$imagetypes = array(' / . gif$ / ',' / . jpg$ / ',' / . jpeg$ / ',' / . png$ / ');
$name = preg_replace($imagetypes, '', basename($file[$location]));
$moved = @ move_uploaded_file($original[$location], THUMBS_DIR.$file);
if ($moved)
{
$result[] = $_FILES['image']['name'].'succesfullyuploaded';
$original = $ext.$file[$location];
}else{
$result = 'Problemuploading'.$_FILES['image']['name'];
}
if ($type == 1)
{
$source = imagecreatefromgif($original);
} elseif ($type == 2) {
$source = imagecreatefromjpeg($original);
} elseif ($type == 3) {
$source = imagecreatefrompng($original);
} else {
$result = 'Cannotidentifythefiletype';
}
}
1 ответ
Не могли бы вы более подробно описать, что вы хотите, чтобы скрипт делал? Я думаю, что ваша проблема может быть в:
$original = ($tmp_file);
Вы перезаписываете переменную, которую используете в цикле foreach.