База вопросов и ответов по Интернет-магазинам, интернет-коммерции, системам управления контентом (CMS), блогам, SEO, контенту и движкам



Скрипт мультизагрузчика гарфики с генерацией уменьшенных изображений для файлов gif, jpeg и png

Когда есть необходимость загрузить на сервер несколько файлов графики, и сгенерировать для них уменьшенные изображения, можно воспользоваться предлагемым ниже кодом.

Этот скрипт позволяет загружать несколько изображений, и одновременно генерировать уменьшенные изображения из файлов в формате GIF, JPG и PNG.

Можно настроить количество одновременно загружаемых изображений.

Можно отключить генерацию уменьшенных изображений.

Можно настроить путь для загрузки сгенерированных уменьшенных ихображений, а также указать их размер: ширину и высоту. Изменение размера будет происходить автоматически на основе введенных параметров, - скрипт сам определит, какой из указанных параметров брать за основу при изменении размеров исходного изображения.

Скрипт также проверяет тип файла изображения и максимально разрешенный размер файла.

Код:

<?php

/**
* Мультизагрузчик картинок с автогенерацией
* уменьшенных изображений
*/

$upload_image_limit = 5; // Количество картинок для одновременной загрузки
$upload_dir = ""; // путь по умолчанию, можно указать относительный или абсолютный
$enable_thumbnails = 1 ; // поставите 0, уменьшенные изображения генерироваться не будут

/*Генерируем уменьшенные изображения для гифов, джепегов и пнг*/

function make_thumbnails($updir, $img){

$thumbnail_width = 80;
$thumbnail_height = 60;
$thumb_preword = "thumb_";

$arr_image_details = GetImageSize("$updir"."$img");
$original_width = $arr_image_details[0];
$original_height = $arr_image_details[1];

if( $original_width > $original_height ){
$new_width = $thumbnail_width;
$new_height = intval($original_height*$new_width/$original_width);
} else {
$new_height = $thumbnail_height;
$new_width = intval($original_width*$new_height/$original_height);
}

$dest_x = intval(($thumbnail_width - $new_width) / 2);
$dest_y = intval(($thumbnail_height - $new_height) / 2);

if($arr_image_details[2]==1) { $imgt = "ImageGIF"; $imgcreatefrom = "ImageCreateFromGIF"; }
if($arr_image_details[2]==2) { $imgt = "ImageJPEG"; $imgcreatefrom = "ImageCreateFromJPEG"; }
if($arr_image_details[2]==3) { $imgt = "ImagePNG"; $imgcreatefrom = "ImageCreateFromPNG"; }

if( $imgt ) {
$old_image = $imgcreatefrom("$updir"."$img");
$new_image = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
imageCopyResized($new_image,$old_image,$dest_x, $dest_y,0,0,$new_width,$new_height,$original_width,$original_height);
$imgt($new_image,"$updir"."$thumb_preword"."$img");
}
}

/*Грузим картинки*/

foreach($_FILES as $k => $v){

$img_type = "";

### $htmo .= "$k => $v<hr />";
### print_r($_FILES);

if( !$_FILES[$k]['error'] && preg_match("#^image/#i", $_FILES[$k]['type']) && $_FILES[$k]['size'] < 1000000){
$img_type = ($_FILES[$k]['type'] == "image/jpeg") ? ".jpg" : $img_type ;
$img_type = ($_FILES[$k]['type'] == "image/gif") ? ".gif" : $img_type ;
$img_type = ($_FILES[$k]['type'] == "image/png") ? ".png" : $img_type ;

$img_rname = $_FILES[$k]['name'];
$img_path = $upload_dir.$img_rname;

copy( $_FILES[$k]['tmp_name'], $img_path );
if($enable_thumbnails) make_thumbnails($upload_dir, $img_rname);
$feedback .= "Созданы картинка и уменьшенное изображение $img_rname<br />";
}
}

/*Форма на странице*/
while($i++ < $upload_image_limit){
$form_img .= '<label>Картинка '.$i.': </label> <input type="file" name="uplimg'.$i.'"><br />';
}

$htmo .= '
<p>'.$feedback.'</p>
<form method="post" enctype="multipart/form-data">
'.$form_img.' <br />
<input type="submit" value="Загрузить картинки!" style="margin-left: 50px;" />
</form>
';

echo $htmo;

?>

 

Скопировав приведенный выше текст в файл и запустив скрипт на сервере, вы получите примерно такую картинку:



Связанные статьи

Связанных статей не найдено.

Приложения

Комментарии

Коментариев пока нет. Прокомментировать

Прокомментиировать "Скрипт мультизагрузчика гарфики с генерацией уменьшенных изображений для файлов gif, jpeg и png"

Для того, чтобы оставить свои комментарии к этой стаье, просто заполните поля приведенной ниже формы. Поля, помеченные звездочкой, обязательны для заполнения.

   Имя:
   Email:
* Комментарии:
* Код защиты от спама:

 

Информация о статье

Обновлялась
10th of November, 2010

Хотите...

распечатать страницу  распечатать страницу

Отправить старницу на Email  Отправить старницу на Email

Прокомментировать  Прокомментировать

 Подпишите меня

Подпишите меня  Добавить в закладки

Убрать выделение Убрать выделение

Редактировать эту статью

Быстрое редактирование

Выгнать в PDF


Мнения

Пока не оценено.

Как Вы оцениваете этот материал?




Thank you for rating this answer.

Продолжить