Спасибо silicoid, по сути он написал универсальный скрипт, где можно ресайзить кучу вариантов изображения и сохранять их по разным папкам, с множеством настроек.
Если вдруг кому то понадобится вот код скрипта:
<html>
<head>
<title>Загрузка изображения с изменением размеров</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h1>Загрузка изображения с изменением размеров</h1>
<?php
// Пути загрузки файла
$tmp_path = 'tmp/';
// Основные настройки
//
$config = array(
'tmp_path' => $tmp_path,
'paths' => array('i/', 'j/', 'k/'), // путь до большой картинки
'thumbs_paths' => array('i/thumb/', 'j/thumb/', 'k/thumb/'), // путь до превьюшки
'max_sizes' => array(600,700,800), // Размеры больших картинок
'max_thumb_sizes' => array(200,300,400), // Размеры превьюшек
'qualities' => array(95,95,95), // качество сохранения
'rotate_statuses' => array(0,0,0), // поворот для каждой картинки
);
// Массив допустимых значений типа файла
$types = array('image/gif', 'image/png', 'image/jpeg');
// Максимальный размер файла
$size = 1024000;
// Обработка запроса
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Проверяем тип файла
if (!in_array($_FILES['picture']['type'], $types))
die('<p>Запрещённый тип файла. <a href="?">Попробовать другой файл?</a></p>');
// Проверяем размер файла
if ($_FILES['picture']['size'] > $size)
die('<p>Слишком большой размер файла. <a href="?">Попробовать другой файл?</a></p>');
// Функция изменения размера
// Изменяет размер изображения в зависимости от type:
// type = 1 - эскиз
// type = 2 - большое изображение
// rotate - поворот на количество градусов (желательно использовать значение 90, 180, 270)
// quality - качество изображения (по умолчанию 75%)
function resize($file, $max_thumb_size=200, $max_size=600, $type = 1, $rotate = null, $quality = 75 )
{
global $config;
$tmp_path = $config['tmp_path'];
// Cоздаём исходное изображение на основе исходного файла
if ($file['type'] == 'image/jpeg')
$source = imagecreatefromjpeg($file['tmp_name']);
elseif ($file['type'] == 'image/png')
$source = imagecreatefrompng($file['tmp_name']);
elseif ($file['type'] == 'image/gif')
$source = imagecreatefromgif($file['tmp_name']);
else
return false;
// Поворачиваем изображение
if ( ($rotate != null) or ($rotate > 0))
$src = imagerotate($source, $rotate, 0);
else
$src = $source;
// Определяем ширину и высоту изображения
$w_src = imagesx($src);
$h_src = imagesy($src);
// В зависимости от типа (эскиз или большое изображение) устанавливаем ограничение по ширине.
if ($type == 1)
$w = $max_thumb_size;
elseif ($type == 2)
$w = $max_size;
// Если ширина больше заданной
if ($w_src > $w)
{
// Вычисление пропорций
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
// Копируем старое изображение в новое с изменением параметров
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
// Вывод картинки и очистка памяти
imagejpeg($dest, $tmp_path . $file['name'], $quality);
imagedestroy($dest);
imagedestroy($src);
return $file['name'];
}
else
{
// Вывод картинки и очистка памяти
imagejpeg($src, $tmp_path . $file['name'], $quality);
imagedestroy($src);
return $file['name'];
}
}
// кол-во вариантов масштабирования
$variants = sizeof($config['paths']);
// прогоняем все варианты
for ($itr = 0; $itr < $variants; $itr ++){
// меняем папку в зависимости от выбраного типа масштабирования
if ($_POST['file_type'] == 1 ){
$outPath = $config['thumbs_paths'][$itr];
} else {
$outPath = $config['paths'][$itr];
}
// Загрузка файла и вывод сообщения
if (!@copy($tmp_path.$name, $outPath.$name))
echo '<p>Что-то пошло не так в шаге '.$itr.'.</p>';
else
echo '<p>Загрузка '.$itr.' прошла удачно <a href="'.$outPath.$_FILES['picture']['name'].'">Посмотреть</a>.</p>';
// Удаляем временный файл на последнем шаге
if ($itr == $variants-1){
unlink($tmp_path.$name);
}
}
// вообще функция ресайз стала гораздо более универсальной.
// если не нужно генерить кучу картинок,то можно пользоваться только ей одной
// надо закоментировать цикл
// а вместо него раскоментить строки ниже
// $name = resize($_FILES['picture'], размер_превьюхи , размер_большой_картинки, Тип_масштабирования:_1-если_нужна_превьюха_2-если_нужна_большая, на_сколько_градусов_повернуть_[0--359], с_каким_качеством_сохранить_[1--100]);
// $outPath = 'путь_куда_сохранять_картинку';
// if (!@copy($tmp_path.$name, $outPath.$name))
// echo '<p>Что-то пошло не так .</p>';
// else
// echo '<p>Загрузка прошла удачно <a href="'.$outPath.$_FILES['picture']['name'].'">Посмотреть</a>.</p>';
// ...
// повторить предыдущие строки N раз -- сколько нужно превьюшек
// ...
Разместить выше правила с /rubrika/view-page.php
Спасибо, это оно!
За эти деньги скрипт лучше закажите.
просто там нужен ручной отбор картинок к болячкам, по формату: не жесть 18+ без фоток писек и т.п.
PS: лучше пусть хомосапиенс..
PPS: работу хотел отдать одному человеку, усидчивому и терпеливому, готовому приступить к выполнению сейчас, не потом..
Какое кол-во нужно загрузить?
4000-5000 штук
А если страниц 400 редиректом в .htaccess прописать, как это может сказаться, на загрузку сайта, или с точки зрения ПС?
Так вобще делают?
Спасибо silicoid, по сути он написал универсальный скрипт, где можно ресайзить кучу вариантов изображения и сохранять их по разным папкам, с множеством настроек.
Если вдруг кому то понадобится вот код скрипта:
plz help :2cents:
Сняли фильтр от 14.09, делал с сайтом много чего.
А конкретнее что делалось???
Сайты так и не возвращаются после 14.09, уже и с текстом поработали, но, что-то тишина (
Такая же лабуда. И стекстом поработали, и всю структуру меняли, а сайту все хуже, последних посетителей режет с яши. Хз что делать.. Снова ждать..
Один сайтик схватил санкции: тИЦ ресурса — не определен, было 40.
Приторговывал ссылочками.
У кого нибудь есть примеры вывода из-под бана, какие меры предпринимали?
Что делать- снимать ссылки и писать в поддержку? на что давить?
Поменять квантификатор * (ноль или более) на + (один или более)
^articles/([^/]+)$
Теперь всё работает, спасибо.