Помогите друзья. имею скрипт фотохостинга но в нём можно загружать фотки только по одной штуке, а хотелось бы по несколько сразу.
Сразу скажу что я в курсе как это сделать да вот только как это воткунуть в имеющийся скрипт чтобы рабртало пока не получилось.
и так форма для загрузки у меня такая
<input name="FILE" type="file" id="image" class="input_field_short">
а сам файл обработчик следущий
[PHP]<?
session_start();
include 'inc/mysql.php';
include 'inc/func.php';
include 'inc/tmb.php';
if (!isset($_SESSION['id']))
{
header ("location: logout.php");
exit;
}
if($_FILES['FILE']['type'] == 'image/gif')
{
$xyz=".gif";
}
elseif($_FILES['FILE']['type'] == 'image/pjpeg')
{
$xyz=".jpg";
}
elseif($_FILES['FILE']['type'] == 'image/jpeg')
{
$xyz=".jpeg";
}
elseif($_FILES['FILE']['type'] == 'image/x-png')
{
$xyz=".png";
}
else
{
$text = "Формат файла не верен.";
$err = 1;
}
if($_FILES['FILE']['size'] = 0 OR filesize($_FILES['FILE']['tmp_name']) > 307200)
{
$text .= "Размер файла не верен.";
$err = 1;
}
if(!is_uploaded_file($_FILES['FILE']['tmp_name']))
{
$text .= "Ошибка при загрузке файла на сервер.";
$err = 1;
}
if(!$_FILES['FILE']['name'])
{
$text .= "Не корректное название файла.";
$err = 1;
}
if ($err<>1)
{
$stat = mysql_fetch_assoc(mysql_query("SELECT id FROM pic ORDER BY id DESC LIMIT 0,1"));
$new_id = $stat['id']+1;
$path = $new_id;
$count = 7 - strlen($path);
for ($i = 1; $i <= $count; $i++)
{
$path = "0".$path;
}
$path = rez(substr($path,0,5));
$path = "allimage".$path."/";
mkpath($path);
move_uploaded_file($_FILES['FILE']['tmp_name'], $path."/".$new_id."".$xyz."");
$name = def($_POST['image_name']);
$thumb = $path.$new_id."-thumb".$xyz;
$path = $path.$new_id.$xyz;
$options = array(
'width' => 160,
'height' => 160,
);
thumbnails($path,$thumb);
mysql_query("INSERT INTO pic(name, owner, date, path, thumb_path) VALUES ('$name', '".$_SESSION['id']."','".time()."', '$path', '$thumb')");
header("Location: http://".$_SERVER["SERVER_NAME"]."/cabinet/gallery/code".mysql_insert_id()."/");
exit;
}
else
{
include('tpl/top.php');
include('tpl/error.php');
include('tpl/news.php');
include('tpl/footer.php');
}
?>[/PHP]
ВАЖНО в этот файл ещё инклюдится файлик
tmb.php вот его содержимое... пока я в нём не понял что нужно добавить
[PHP]<?php
function thumbnails($f, $p, $t = 2, $s = 1, $q = 90, $w = 160) {
// f - имя файла
// w - требуемая ширина картинки
// q - качество сжатия jpeg
// s - выводить ли надпись
// t - формат: 0 - без изменения, 1 - пропорциональный, 2 - квадратный кусок
if (empty($p)) die("No thumbnail name in \$p");
list($width, $height, $type, $attr) = @getimagesize($f);
if (!$type) $type = 3;
//--------------------------------------------
//
// МАСШТАБИРОВАНИЕ
// создаём исходное изображение на основе
// исходного файла и опеределяем его размеры
//
//--------------------------------------------
if (!file_exists($f))
{
$src = @imagecreatefrompng("resize_error.png") or die ("Cannot Initialize new GD image stream");
$s = 0;
}
else
{
switch ($type)
{
case 1: //header("Content-type: image/gif");
$src = imagecreatefromgif($f) or die ("Cannot Initialize new GD image stream");
break;
case 2: //header("Content-type: image/jpeg");
$src = imagecreatefromjpeg($f) or die ("Cannot Initialize new GD image stream");
break;
case 3: //header("Content-type: image/png");
$src = imagecreatefrompng($f) or die ("Cannot Initialize new GD image stream");
break;
}
}
$w_src = imagesx($src);
$h_src = imagesy($src);
if ($t == 1) // операции для получения прямоугольного файла
{
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
// создаём пустую картинку
// важно именно truecolor!, иначе будум иметь 8-битный результат
$dest = @imagecreatetruecolor($w_dest,$h_dest) or die("Cannot Initialize new GD image stream");
$white = imagecolorallocate($dest, 255, 255, 255);
imagefill($dest,1,1,$white);
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
}
if ($t == 2) // операции для получения квадратного файла
{
// создаём пустую квадратную картинку
// важно именно truecolor!, иначе будум иметь 8-битный результат
$dest = @imagecreatetruecolor($w,$w) or die("Cannot Initialize new GD image stream");
// вырезаем квадратную серединку по x, если фото горизонтальное
if ($w_src > $h_src)
imagecopyresampled($dest, $src, 0, 0, round((max($w_src,$h_src)-min($w_src,$h_src))/2), 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
// вырезаем квадратную верхушку по y,
// если фото вертикальное (хотя можно тоже середику)
if ($w_src < $h_src)
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
// квадратная картинка масштабируется без вырезок
if ($w_src == $h_src)
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $w, $w_src, $w_src);
}
if ($s == 1) // нужна ли надпись
{
$str = "58region.ru";
// определяем координаты вывода текста
$x_text = $w_dest-70;
$y_text = $h_dest-15;
// определяем каким цветом на каком фоне выводить текст
$white = imagecolorallocate($dest, 255, 255, 255);
$black = imagecolorallocate($dest, 0, 0, 0);
// выводим текст
imagestring($dest, 2, $x_text-1, $y_text-1, $str,$black);
imagestring($dest, 2, $x_text+1, $y_text+1, $str,$black);
imagestring($dest, 2, $x_text+1, $y_text-1, $str,$black);
imagestring($dest, 2, $x_text-1, $y_text+1, $str,$black);
imagestring($dest, 2, $x_text-1, $y_text, $str,$black);
imagestring($dest, 2, $x_text+1, $y_text, $str,$black);
imagestring($dest, 2, $x_text, $y_text-1, $str,$black);
imagestring($dest, 2, $x_text, $y_text+1, $str,$black);
imagestring($dest, 2, $x_text, $y_text, $str,$white);
}
if (!file_exists($f))
{
header("Content-type: image/x-png");
$black = imagecolorallocate($dest, 0, 0, 0);
imagerectangle($dest,0,0,$w-1,$w-1,$black);
imagepng($dest);
exit;
}
@imagegammacorrect($dest, 1, 1.1);
@imageinterlace($dest, 1);
switch ($type)
{
case 1: imagegif($dest, $p); break;
case 2: imagejpeg($dest, $p, $q); break;
case 3: imagepng($dest, $p); break;
}
imagedestroy($dest);
imagedestroy($src);
return true;
}
?> [/PHP]
Буду благодарен любой помощи.