Файл: inc/tools/thumbmaker/index.php
Строк: 113
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="100%" align="center" class="ttable">
<tr>
<td colspan="2" bgcolor="#D4D0C8"><strong>Thumbmaker (генератор "превьюшек") </strong></td>
</tr>
<tr>
<td colspan="2">
<?php
if(!function_exists('inc/tools/thumbmaker/zip_open'))
{
echo 'Для работы скрипта необходим установленный <a href=http://zziplib.sourceforge.net>ZZIPlib</a><br>';
exit;
}
if(!is_writable('inc/tools/thumbmaker'))
{
echo 'Для работы скрипта необходимо установить права на запись (chmod 777) для папки <i>/thumbmaker</i> !<br> ';
exit;
}
?> </td>
</tr>
<tr>
<td width="47%"><div align="right">Картинки для уменьшения (в ZIP архиве): </div></td>
<td width="53%">
<input name="file1" type="file" id="file1" /></td>
</tr>
<tr>
<td><div align="right">Размер большей стороны </div></td>
<td>
<input name="maxsize" type="text" id="maxsize" value="100" size="4" maxlength="4" />
px.</td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input name="execute" type="hidden" id="execute" value="true" />
<input name="Submit" type="submit" value="Выполнить" />
</div></td>
</tr>
<tr>
<td colspan="2">
<?php
if ($_POST['execute'])
{
@unlink('inc/tools/thumbmaker/archive.zip');
@unlink('inc/tools/thumbmaker/ready.zip');
@unlink('inc/tools/thumbmaker/input/*');
@unlink('inc/tools/thumbmaker/output/*');
@rmdir('inc/tools/thumbmaker/input');
@rmdir('inc/tools/thumbmaker/output');
@mkdir('inc/tools/thumbmaker/input');
@mkdir('inc/tools/thumbmaker/output');
if (move_uploaded_file($_FILES['file1']['tmp_name'], 'inc/tools/thumbmaker/archive.zip'))
{
echo 'Архив загружен...<br>';
}
else
{
echo 'Архив не загружен...'; exit;
}
$zip = new ZipArchive;
if ($zip->open('inc/tools/thumbmaker/archive.zip') === TRUE) {
$zip->extractTo('inc/tools/thumbmaker/input');
$zip->close();
echo 'Архив распакован...<br>';
} else {
echo 'Ошибка при разархивировании...';
exit;
}
extract($_POST);
/////////////
function ditchtn($arr,$thumbname)
{
foreach ($arr as $item)
{
if (!preg_match("/^".$thumbname."/",$item)){$tmparr[]=$item;}
}
return $tmparr;
}
function createthumb($name,$filename,$new_w,$new_h)
{
$system=explode(".",$name);
if (preg_match("/jpg|jpeg|JPG|JPEG/",$system[count($system)-1])){ $src_img=imagecreatefromjpeg($name);}
if (preg_match("/png|PNG/",$system[count($system)-1])){$src_img=imagecreatefrompng($name);}
$old_x=imageSX($src_img);
$old_y=imageSY($src_img);
if ($old_x > $old_y)
{
$thumb_w=$new_w;
$thumb_h=$old_y*($new_h/$old_x);
}
if ($old_x < $old_y)
{
$thumb_w=$old_x*($new_w/$old_y);
$thumb_h=$new_h;
}
if ($old_x == $old_y)
{
$thumb_w=$new_w;
$thumb_h=$new_h;
}
$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
if (preg_match("/png/",$system[1]))
{
imagepng($dst_img,$filename);
} else {
imagejpeg($dst_img,$filename);
}
imagedestroy($dst_img);
imagedestroy($src_img);
}
function directory($dir,$filters)
{
$handle=opendir($dir);
$files=array();
if ($filters == "all"){while(($file = readdir($handle))!==false){$files[] = $file;}}
if ($filters != "all")
{
$filters=explode(",",$filters);
while (($file = readdir($handle))!==false)
{
for ($f=0;$f<sizeof($filters);$f++):
$system=explode(".",$file);
if ($system[1] == $filters[$f]){$files[] = $file;}
endfor;
}
}
closedir($handle);
return $files;
}
// Папка с картинками
$imagefolder='inc/tools/thumbmaker/input/';
// Папка для складывания результатов
$thumbsfolder='inc/tools/thumbmaker/output/';
// Префикс для маленьких картинок
$prefix="tn_";
// Ширина готовых картинок
$shirina=$maxsize;
// Высота готовых картинок
$vysota=$maxsize;
// Получаем список заданной папки с картинками
$pics=directory($imagefolder,"jpg,JPG,JPEG,jpeg,png,PNG");
// Фильтруем список, оставляя массив только картинок
$pics=ditchtn($pics,$prefix);
// Если существует массив, обрабатываем его
if ($pics[0]!="")
{
foreach ($pics as $p)
{
echo "<b>".$p."</b><br>";
createthumb($imagefolder.$p,$thumbsfolder.$prefix.$p,$shirina,$vysota);
}
}
////////////
echo 'Завершено...<br>';
$zip2 = new ZipArchive;
if ($zip2->open('inc/tools/thumbmaker/ready.zip', ZipArchive::CREATE) === TRUE) {
$directory='inc/tools/thumbmaker/output/';
$handler = opendir($directory);
while ($file = readdir($handler)) {
if ($file != '.' && $file != '..')
{
$zip2->addFile("inc/tools/thumbmaker/output/".$file, $file);
}
}
$zip2->close();
echo "Файлы заархивированы... <br><a href='thumbmaker/ready.zip'>Скачать результат >></a>";
}
else
echo 'Ошибка при архивировании результатов <br>';
}
?> </td>
</tr>
</table>
</form>