|
|
|
| Долго ломал голову, есть код из галереи на сайте, все работает на ура, но никак не могу связать его с циклом, что бы загружать несколько файлов, одновременно делать ресайз и записывать все это в базу.
Может есть у кого готовый скриптик? :) или объясните пожайлуста как это связать. | |
|
|
|
|
|
|
|
для: unnamed
(27.04.2008 в 20:40)
| | одновременно делать ресайз и записывать все это в базу
Одновременно неполучится, поочерёдно (последовательно, друг за другом и т.д.)
Из формы необходимо передавать имена загружаемых файлов массивом т.е. если было
<input type="file" name="filename">
|
то сделать:
<input type="file" name="filename[]">
<input type="file" name="filename[]">
<input type="file" name="filename[]">
|
В обработчике просто обходите массив с помощью foreach т.е. ресайз и сохранение одного файла выполняете в цикле.
В разделе по ЯваСкрипт можно поискать код добавления полей для ввода (файлов) количество которых заранее неизвестно. | |
|
|
|
|
|
|
|
для: Valick
(28.04.2008 в 09:41)
| | Это все понятно что через цикл, Ява скрипт тоже у меня есть, я просто хотел связать скрипт ресайза, который выложен в разделе скрипты, т.е. там выложена галлерея, я вырезал от туда код загрузки и ресайза.
Там есть такая функция resizeimg(); Вот как бы ее в цикл пихнуть - этого я не пойму. | |
|
|
|
|
|
|
|
для: unnamed
(29.04.2008 в 20:08)
| | Не знаю какой скрипт ресайза у вас, но просто для примера. Все просто - вы должны получать закачанное на сервер изображение (в примере это $_FILES['fl']['tmp_name']) с идексом цикла, изменять его размер и помещать полученное в нужный каталог с нужным вам именем:
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="fl[]">
<input type="file" name="fl[]">
<input name="send" type="submit" value="Send">
</form>
<?php
function resize($source, $dist, $pr) {
// получим размеры исходного изображения
$size_img = getimagesize($source);
$ws = $size_img[0]; //ширина
$hs = $size_img[1]; //высота
//получаем уменьшенные размеры выходного изображения
$w = round(($ws * $pr)/100); //ширина
$h = round(($hs * $pr)/100); //высота
//создаем изображение по заданным размерам
$new_img = imagecreatetruecolor($w, $h);
//создаем изображение в зависимости от расширения исходного
switch ($size_img['mime']) {
case 'image/jpeg':
$src_img = imagecreatefromjpeg($source);
break;
case 'image/png':
$src_img = imagecreatefrompng($source);
break;
case 'image/gif':
$src_img = imagecreatefromgif($source);
}
//ресайз
imagecopyresampled($new_img, $src_img, 0, 0, 0, 0, $w, $h, $ws, $hs);
//сохраняем в файл по расширению и заданному имени
switch ($size_img['mime']) {
case 'image/jpeg':
imagejpeg($new_img, $dist.'.jpg');
break;
case 'image/png':
imagepng($new_img, $dist.'.png');
break;
case 'image/gif':
imagegif($new_img, $dist.'.gif');
}
imagedestroy($new_img);
imagedestroy($src_img);
}
//указываем путь сохранения файлов
$path = 'images/';
for ($i=0; $i<count($_FILES['fl']['name']); $i++) {
if (is_uploaded_file($_FILES['fl']['tmp_name'][$i])) {
//проверяем загружаемое изображение на доступность размера,
//расширения, и если все ОК, делаем ресайз,
//передавая в функцию изображение из папки /tmp,
//путь и имя файла для сохранения, процент уменьшения.
resize($_FILES['fl']['tmp_name'][$i], $path.'image_'.$i, 30);
//здесь же сохраняем загруженное исходное изображение
} else //ошибка загрузки изображения
}
?>
|
| |
|
|
|
|
|
|
|
для: sim5
(30.04.2008 в 03:50)
| | Во, спасибо теперь вроде понятно, позже попробую под свой переделать, спасибо огромное | |
|
|
|