00:00:00


Php обработчик загрузки нескольких изображений на сервер

Скрипт слайдера  |   Zip распаковщик  |   Скрипт счетчик  |   Скрипт Обр. связи  |   Нажмите, чтобы увеличить

Ротатор рекламных материалов AVL  |   Сколько сейчас на сайте  |   Онлайн (online) подсветка программного кода

Скрипт для подсветки программного кода  |   Форма для загрузки нескольких изображений

Два примера кода формы для загрузки нескольких изображений  |   Php обработчик загрузки нескольких изображений на сервер

Ваш комментарий или вопрос

В данном материале, я предлагаю код моего скрипта "Php обработчик загрузки
нескольких изображений на сервер
" и короткое описание его работы.
И попробывать, загрузить свои изображение с помощью моего скрипта .
Ниже по странице сам код этого скрипта.

Скрипт получает данные с формы, код формы по ссылке.

Второй вариант кода формы.

Каждый инпут " <input type="file"/> " формы передает данные с своей переменной,
так как массив необходим только при множественной загрузки с одним инпутом
с атрибутом multiple, как в скобках (<input type="file" name="file[]" multiple>).

Скрипт имеет несколько видов проверок причины запуска скрипта
(против попыток взлома):
1) Проверка адреса - откуда был запущен скрипт.
2) Каптча - защита не только от ботов, но и попытки обойти нашу форму.
3) От попыток - заполняя форму, вписать программный код.
4) Функция " is_uploaded_file ", проверка - реально ли был загружен файл
методом " пост ", чтобы не могли скопировать с помощью нашего скрипта,
какой нибудь файл запрещенный к просмотру, с вашего сервера.

Проверяет размер файла - если он больше разрешенного, то файл пропускается,
а скрипт продолжает работу.
Проверка типа файла.
При загрузке скрипт создает уникальное имя файла, для этого он при необходимости
переводит начальное имя с кириллицы на латиницу ( функция translit, не я автор
функции, но в данном случае она очень полезна и я ее использую).
К получившийся имени скрипт добавляет уникальный код и имя
файла становится неповторимым.
Далее обработчик сохраняет файл в вашу папку копируя с временной. И так по циклу,
пока все файлы не будут загружены.

Php обработчик загрузки нескольких изображений на сервер

Попробуйте скрипт "Php обработчик загрузки нескольких изображений на сервер"
в работе, загрузите свои изображения на сервер и вы их увидите на этой странице.

Ваши изображения сохранятся на пять минут и будут видны только по вашему ip
который был у вас на момент загрузки (в самом скрипте подобных ограничений нет).
То есть - если с обновлением страницы изменится ваш ip то свои изображения на
странице вы не увидите.

Image  Открыть форму загрузки

Вот сам код:

// Php обработчик загрузки нескольких изображений на сервер 

< ?php

// Проверка адреса - откуда был запущен скрипт.

$otkuda getenv("HTTP_REFERER");
if (!
stristr($otkuda$_SERVER["HTTP_HOST"])) {
   
header("Location: /");
exit();
}

// Функция errpusk для удобства вывода ошибок!

function errpusk($errors) {
if (!empty(
$errors)) {
   global 
$otkuda;
   
$errormass array_shift($errors);
   if (!
stristr($otkuda"?")) header("Location: $otkuda?commerr=" $errormass);
   else 
header("Location: $otkuda&commerr=" $errormass);
   exit();
   }
}
  
// Фильтр от попыток - заполняя форму, вписать программный код. 
//  Используйте для любых чисел, имен и строк - переданных формой!

function zensuraString($var)
{
$var stripslashes($var);
$var strip_tags($var);
$var htmlspecialchars($varENT_NOQUOTES"UTF-8");
$var trim($var);
return 
$var;
}

// Переход на латиницу!
function translit($var)
{
    
$converter = array(
        
'а' => 'a',    'б' => 'b',    'в' => 'v',    'г' => 'g',    'д' => 'd',
        
'е' => 'e',    'ё' => 'e',    'ж' => 'zh',   'з' => 'z',    'и' => 'i',
        
'й' => 'y',    'к' => 'k',    'л' => 'l',    'м' => 'm',    'н' => 'n',
        
'о' => 'o',    'п' => 'p',    'р' => 'r',    'с' => 's',    'т' => 't',
        
'у' => 'u',    'ф' => 'f',    'х' => 'h',    'ц' => 'c',    'ч' => 'ch',
        
'ш' => 'sh',   'щ' => 'sch',  'ь' => '',     'ы' => 'y',    'ъ' => '',
        
'э' => 'e',    'ю' => 'yu',   'я' => 'ya',
 
        
'А' => 'A',    'Б' => 'B',    'В' => 'V',   'Г' => 'G',    'Д' => 'D',
        
'Е' => 'E',    'Ё' => 'E',    'Ж' => 'Zh',  'З' => 'Z',    'И' => 'I',
        
'Й' => 'Y',    'К' => 'K',    'Л' => 'L',    'М' => 'M',    'Н' => 'N',
        
'О' => 'O',    'П' => 'P',    'Р' => 'R',    'С' => 'S',    'Т' => 'T',
        
'У' => 'U',    'Ф' => 'F',    'Х' => 'H',    'Ц' => 'C',    'Ч' => 'Ch',
        
'Ш' => 'Sh',   'Щ' => 'Sch',  'Ь' => '',     'Ы' => 'Y',    'Ъ' => '',
        
'Э' => 'E',    'Ю' => 'Yu',   'Я' => 'Ya',
    );
 
    
$var strtr($var$converter);
    return 
$var;
}

if (isset(
$_POST["co_reset"])) {  // отмена загрузки
header("Location: $otkuda");
exit();
}

if (isset(
$_POST["neskf_subm"])) {

// каптча

$slogaem_kaptch zensuraString($_POST["slogaem_kaptch"]);
$slogaem_kaptch preg_replace("/[^0-9]/"""$slogaem_kaptch);

$znak_kaptch zensuraString($_POST["znak_kaptch"]);
$znak_kaptch preg_replace("/[^0-9]/"""$znak_kaptch);

$zadan_kaptch zensuraString($_POST["zadan_kaptch"]);
$zadan_kaptch preg_replace("/[^0-9]/"""$zadan_kaptch);

$otvet_kaptch zensuraString($_POST["otvet_kaptch"]);
$otvet_kaptch preg_replace("/[^0-9]/"""$otvet_kaptch);
$errors = array();

switch (
$slogaem_kaptch)
{
        case 
$tslog 43; break;
        case 
$tslog 42; break;
        case 
$tslog 47; break;
        case 
$tslog 51; break;
        case 
$tslog 59; break;
        case 
$tslog 69; break;
        case 
$tslog 65; break;

   
if (
$znak_kaptch == 0) {
   if (
$otvet_kaptch != $tslog $zadan_kaptch) {
      
$errors[] = 23;
      
$errormass errpusk($errors);
   }
}
if (
$znak_kaptch == 1) {
   if (
$otvet_kaptch != $tslog $zadan_kaptch) {
      
$errors[] = 23;
      
$errormass errpusk($errors);
   }
}

if(isset(
$_FILES["imgcp_1"])) {
$dirimages $_SERVER["DOCUMENT_ROOT"] . "/upload/"// Ваша папка!
$k 1;
$maximgsize 1024 500;

$imgblockname = array();

while (isset(
$_FILES["imgcp_" $k])) {
    
$imgcp "imgcp_" $k;
    
$upfile      $_FILES[$imgcp]["tmp_name"];
    
$upfile_name $_FILES[$imgcp]["name"];
    
$upfile_size $_FILES[$imgcp]["size"];
    
$upfile_type $_FILES[$imgcp]["type"];
    
$error_code  $_FILES[$imgcp]["error"];
    
     if (
$upfile_size $maximgsize) {
    
$k++;
    continue;
    }

// Останавливаем скрипт, если этот файл не был загружен

    
if (is_uploaded_file($_FILES[$imgcp]["tmp_name"])) {
// если ошибок нет
    
if($error_code == 0) {
    switch(
$upfile_type) {
    case 
"image/pjpeg":
    case 
"image/jpeg"$ext "jpg"; break;
    case 
"image/gif"$ext "gif"; break;
    case 
"image/png"$ext "png"; break;
    case 
"image/tiff"$ext "tif"; break;
    default: 
$ext ""; break;
    }
    
    if ((
$ext) and ($ext != "")) {
    
$upfile_name translit($upfile_name);
    
$upfile_name strtolower(preg_replace("/[^A-Za-z0-9._]/"""$upfile_name));
    
$indivimg uniqid();
    
$arrupfilename explode("."$upfile_name);
    
$upfile_n $arrupfilename[0];
     
$imagename $upfile_n $k $indivimg "." $ext;
     
$upfile_name $dirimages $imagename;

     
copy($upfile$upfile_name);
     
     
$imgblockname[] = $imagename// Массив имен загруженных файлов для записи в базу. 
    
     
$k++;
    } else {
    
$errors[] = 24;
    
$errormass errpusk($errors);
    }
     
    } else {
    
$errors[] = 25;
    
$errormass errpusk($errors);
    }
    } else {
    
$errors[] = 26;
    
$errormass errpusk($errors);
    }
}

header("Location: $otkuda"); // Возвращает на страницу при положительном результате!

} else {
    
header("Location: /");
    exit();
}

} else {
    
header("Location: /");
    exit();
}

? >

Скрипт бесплатный и устанавливать можете на любое количество ваших сайтов,
но распространять можно только с присутствием ссылки на этот сайт с место
распространения.   Удачи! Алексей.



Скрипт слайдера  |   Zip распаковщик  |   Скрипт счетчик  |   Скрипт Обр. связи  |   Нажмите, чтобы увеличить

Ротатор рекламных материалов AVL  |   Сколько сейчас на сайте  |   Онлайн (online) подсветка программного кода

Скрипт для подсветки программного кода  |   Форма для загрузки нескольких изображений

Два примера кода формы для загрузки нескольких изображений  |   Php обработчик загрузки нескольких изображений на сервер

Ваш комментарий или вопрос

Если нашу ссылку вставите себе на сайт по адресу написанному вами в
комментарии, то ваш адрес тоже станет ссылкой!