Перейти к публикации

lifestar

Клиенты
  • Публикации

    4 080
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    5

Сообщения, опубликованные пользователем lifestar

  1. Заявление.

    Я, движимый стадным чувством, поставил себе такой аватар, потому что у многих он стоял. По наивной логике подумал - мода, ан ошибался. Прошу простить мне сиё недоразумение. Торжественно обещаю исправиться сразу же, как появится возможность загрузки своих аватар.

    Alex Motor

    :mellow:

  2. Модуля у меня нет, но вот вам кусок кода из админки галереи лайфстар (по нему можно многое понять, ибо ничего сложного нет).

    /*****************************/
    
    /* загружаем архив с фотками */
    
    /*****************************/
    
    // С локального компьютера
    
    if (!$imageurl)
    
    {
    
    		   $images = $_FILES['file']['tmp_name'];
    
    		   $images_name = $_FILES['file']['name'];
    
    		   $images_size = $_FILES['file']['size'];
    
    		   $img_name_arr = explode(".",$images_name);
    
    		   $type		 = strtolower(end($img_name_arr));
    
    		   if ($type!='zip') msg("error","Ошибка !!!","Файл должен быть архивом ZIP!", "java script:history.go(-1)");
    
    		   if($image_size > (5000*1024)) msg("error","Ошибка !!!","Файл слишком большой! Максимальный размер: 50Мб", "java script:history.go(-1)");
    
    
    		   if($images_name != "") $images_name  = totranslit(stripslashes($img_name_arr[0])).".".$type;
    
    
    // Создаём папку с альбомом, для этого делаем запрос, чтобы получить последнее ID
    
    	$row = $db->super_query("SELECT id FROM " . PREFIX . "_photo ORDER BY 'id' DESC LIMIT 0,1");
    
    	$last_id = $row['id'];
    
    	$new_id = $last_id+1;
    
    	if (!is_dir(ROOT_DIR."/img/photo/".$new_id))
    
    		@mkdir (ROOT_DIR."/img/photo/".$new_id, 0755);
    
    	else
    
    		msg("error","Ошибка !!!","Директория для этого фотоальбома под номером $new_id уже существует.", "java script:history.go(-1)");
    
    	$current_photo_dir = ROOT_DIR.'/img/photo/'.$new_id;
    
    
    			@move_uploaded_file($images, $current_photo_dir.'/'.$images_name);
    
    			if(@file_exists($current_photo_dir.'/'.$images_name))
    
    			@chmod ($current_photo_dir.'/'.$images_name, 0666);
    
    } else {
    
    // С удалённого URL
    
    // Создаём папку с альбомом, для этого делаем запрос, чтобы получить последнее ID
    
    	$row = $db->super_query("SELECT id FROM " . PREFIX . "_photo ORDER BY 'id' DESC LIMIT 0,1");
    
    	$last_id = $row['id'];
    
    	$new_id = $last_id+1;
    
    	if (!is_dir(ROOT_DIR."/img/photo/".$new_id))
    
    		@mkdir (ROOT_DIR."/img/photo/".$new_id, 0755);
    
    	else
    
    		msg("error","Ошибка !!!","Директория для этого фотоальбома под номером $new_id уже существует.", "java script:history.go(-1)");
    
    	$current_photo_dir = ROOT_DIR.'/img/photo/'.$new_id;
    
    
    		   $imageurl  = str_replace("\\", "/", $imageurl);//"
    
    		   $images_name = end (explode ("/",$imageurl));
    
    		   $img_name_arr = explode(".",$images_name);
    
    		   $type		 = end($img_name_arr);
    
    		   $image_size  = @filesize_url($imageurl);
    
    		   if ($type!='zip') msg("error","Ошибка !!!","Файл должен быть архивом ZIP!", "java script:history.go(-1)");
    
    		   if($images_name != "") $images_name  = totranslit(stripslashes($img_name_arr[0])).".".totranslit($type);
    
    		   @copy($imageurl, $current_photo_dir.'/'.$images_name);
    
    }
    
    //**********************************************//
    
    //   Разархивируем Фотки						//
    
    //**********************************************//
    
    // Подключаем библиотеку PCL Zip
    
    require_once(ENGINE_DIR.'/inc/lib/pclzip.lib.php');
    
    // Создаем объект $zip. Передаем имя архива.
    
    if(@file_exists($current_photo_dir.'/'.$images_name))
    
    $zip = new PclZip($current_photo_dir.'/'.$images_name);
    
    else die('Файл не загружен');
    
    $content = $zip->extract(PCLZIP_OPT_PATH, $current_photo_dir);
    
    // Удаляем архив
    
    @unlink ($current_photo_dir.'/'.$images_name);
    
    ///////// Создаём превьюшки ////////////////
    
    include_once ENGINE_DIR.'/inc/makethumb.php';
    
    @mkdir ($current_photo_dir."/thumbs", 0755);
    
    if ($handle = opendir($current_photo_dir))
    
    {
    
    	$i=1;
    
    	while (false !== ($file = readdir($handle))) {
    
    		if ($file!='.' && $file!='..' && $file!='thumbs')
    
    		{
    
    			// Список разрешённых файлов
    
    			$allowed_extensions = array("gif","jpg","png");
    
    			$file_arr	= explode(".",$file);
    
    			$file_type   = strtolower(end($file_arr));
    
    			if (in_array($file_type, $allowed_extensions))
    
    			{
    
    				// *******
    
    				// Переименовываем файлы
    
    				// Новое имя файла
    
    				$new_name='/'.$file;
    
    							 $thumb=new thumbnail($current_photo_dir.$new_name);
    
    								// создаём превьюшку
    
    								if ($thumb->size_auto(140)) {
    
    								   $thumb->jpeg_quality(80);
    
    								   $thumb->save($current_photo_dir."/thumbs".$new_name);
    
    								}
    
    								if (@file_exists($current_photo_dir."/thumbs".$new_name))
    
    								@chmod ($current_photo_dir."/thumbs".$new_name, 0666);
    
    					// накладываем на большое фото лого
    
    					$thumb=new thumbnail($current_photo_dir.'/'.$new_name);
    
    					$thumb->insert_watermark(300);
    
    					$thumb->save($current_photo_dir.'/'.$new_name);
    
    				$i++;
    
    				// Удаляем все не графические файлы
    
    			} else @unlink ($current_photo_dir.'/'.$file);
    
    		}
    
    	}
    
      closedir($handle);
    
    }

    Тут несколько строчек лишних (раньше я переименовывал файлы, ну да разберётесь)

×
×
  • Создать...