Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Создание миниатюр в цикле, Создание миниатюр в цикле
sjy19  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 37
Пользователь №: 31559
На форуме: 4 года, 9 месяцев, 10 дней
Карма:




Добрый день всем!
Подскажите, добрые люди, не могу заставить функцию работать в цикле. Загружается массив изображений на сервер, потом должны создаваться к ним миниатюры. Функция создания миниатюр обрабатывает только первое изображение.
Ниже код:

if (isset($_FILES))
{
//пролистываем весь массив изображений по одному $_FILES['file']['name'] as $k=>$v
foreach ($_FILES['filed']['name'] as $k=>$v)
{
//директория загрузки
$uploaddir = "../../BD/temp/";

$getMime = explode('.', $_FILES['filed']['name'][$k]);
$mime = end($getMime);

$apend=substr_replace(sha1(microtime(true)), '', 12)."_".$tovar_id.".".$mime;


$uploadfile = "$uploaddir$apend";

//Проверка расширений загружаемых изображений
if($_FILES['filed']['type'][$k] == "image/gif" || $_FILES['filed']['type'][$k] == "image/png" ||
$_FILES['filed']['type'][$k] == "image/jpg" || $_FILES['filed']['type'][$k] == "image/jpeg" || $_FILES['filed']['type'][$k] == "application/pdf"
|| $_FILES['filed']['type'][$k] == "application/excel" || $_FILES['filed']['type'][$k] == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ||
$_FILES['filed']['type'][$k] == "application/msword" || $_FILES['filed']['type'][$k] == "image/tiff")
{
//черный список типов файлов
$blacklist = array(".php", ".phtml", ".php3", ".php4");
foreach ($blacklist as $item)
{
if(preg_match("/$item\$/i", $_FILES['filed']['name'][$k]))
{
echo "Нельзя загружать скрипты.";
exit;
}
}


//перемещаем файл из временного хранилища
if (move_uploaded_file($_FILES['filed']['tmp_name'][$k], $uploadfile))
{
$sql_do = mysql_query("SHOW TABLES LIKE `img_".$_SESSION['table_name']."` ");
// var_dump($sql_do);
if($sql_do){echo"Есть такая таблица";}
else{
$sql = mysql_query("CREATE TABLE img_".$_SESSION['table_name']." (

id int(5) NOT NULL AUTO_INCREMENT,
id_tov int(5) NOT NULL,
avtor text NOT NULL,
status varchar(10),
name_us text NOT NULL,
name_bd text NOT NULL,
date date NOT NULL,
PRIMARY KEY (`id`))
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;"
);
}
$insert_im=mysql_query ("INSERT INTO `img_".$_SESSION['table_name']."` VALUES (NULL, '$tovar_id', '$username', '', '".$_FILES['filed']['name'][$k]."', '$apend', '$date_tek')");
if($insert_im)
{}else{echo"ошибка";}

function createThumbnail($apend) {


$final_width_of_image = 100;
$path_to_image_directory = '../../BD/temp/'; //Папка, куда будут загружаться полноразмерные изображения
$path_to_thumbs_directory = '../../BD/temp/small_image/';
if(preg_match('/[.](jpg)$/',$apend)) {
$im = imagecreatefromjpeg($path_to_image_directory . $apend);}

else if(preg_match('/[.](jpeg)$/',$apend)) {
$im = imagecreatefromjpeg($path_to_image_directory . $apend);
}
else if(preg_match('/[.](JPG)$/',$apend)) {
$im = imagecreatefromjpeg($path_to_image_directory . $apend);
}
else if(preg_match('/[.](JPEG)$/',$apend)) {
$im = imagecreatefromjpeg($path_to_image_directory . $apend);
}
else if (preg_match('/[.](gif)$/', $apend)) {
$im = imagecreatefromgif($path_to_image_directory . $apend);
}
else if (preg_match('/[.](png)$/',$apend)) {
$im = imagecreatefrompng($path_to_image_directory . $apend);
}
//Определяем формат изображения
else{echo"error1";}

$ox = imagesx($im);
$oy = imagesy($im);



$nx = $final_width_of_image;
$ny = floor($oy * ($final_width_of_image / $ox));

$nm = imagecreatetruecolor($nx, $ny);

imagecopyresized($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);

if(!file_exists($path_to_thumbs_directory)) {
if(!mkdir($path_to_thumbs_directory)) {
die("Возникли проблемы! попробуйте снова!");
}
}


imagejpeg($nm, $path_to_thumbs_directory . $apend);
$tn = '<img src="' . $path_to_thumbs_directory . $apend . '" alt="image" />';
$tn .= '<br />Поздравляем! Ваше изображение успешно загружено и его миниатюра удачно выполнена. Выше Вы можете просмотреть результат:';
echo $tn;
}
createThumbnail($apend);
}
else
echo "<div class='container'><center><br>Файл не загружен, вернитесь и попробуйте еще раз.</center><div>";
}
else
echo "<div class='container'><center><br>Можно загружать только документы в форматах jpg, jpeg, gif, png, xls, xlsx, doc, docx, tiff, pdf .</center><div>";
}}

Ткните , пожалуйста, в нужное направление...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2108
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 5 дней
Карма: 70




Помогу с оформлением чуть чуть =)

<?php
if (isset($_FILES)) {
//пролистываем весь массив изображений по одному $_FILES['file']['name'] as $k=>$v
foreach ($_FILES['filed']['name'] as $k => $v) {
//директория загрузки
$uploaddir = "../../BD/temp/";
$getMime = explode('.', $_FILES['filed']['name'][$k]);
$mime = end($getMime);
$apend = substr_replace(sha1(microtime(true)), '', 12) . "_" . $tovar_id . "." . $mime;
$uploadfile = "$uploaddir$apend";
//Проверка расширений загружаемых изображений
if ($_FILES['filed']['type'][$k] == "image/gif"
|| $_FILES['filed']['type'][$k] == "image/png"
|| $_FILES['filed']['type'][$k] == "image/jpg"
|| $_FILES['filed']['type'][$k] == "image/jpeg"
|| $_FILES['filed']['type'][$k] == "application/pdf"
|| $_FILES['filed']['type'][$k] == "application/excel"
|| $_FILES['filed']['type'][$k] == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|| $_FILES['filed']['type'][$k] == "application/msword"
|| $_FILES['filed']['type'][$k] == "image/tiff") {
//черный список типов файлов
$blacklist = [
".php",
".phtml",
".php3",
".php4"
];
foreach ($blacklist as $item) {
if (preg_match("/$item\$/i", $_FILES['filed']['name'][$k])) {
echo "Нельзя загружать скрипты.";
exit;
}
}

//перемещаем файл из временного хранилища
if (move_uploaded_file($_FILES['filed']['tmp_name'][$k], $uploadfile)) {
$sql_do = mysql_query("SHOW TABLES LIKE `img_" . $_SESSION['table_name'] . "` ");
// var_dump($sql_do);
if ($sql_do) {
echo "Есть такая таблица";
} else {
$sql = mysql_query("CREATE TABLE img_" . $_SESSION['table_name'] . " (
id int(5) NOT NULL AUTO_INCREMENT,
id_tov int(5) NOT NULL,
avtor text NOT NULL,
status varchar(10),
name_us text NOT NULL,
name_bd text NOT NULL,
date date NOT NULL,
PRIMARY KEY (`id`))
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
"
);
}
$insert_im = mysql_query("INSERT INTO `img_" . $_SESSION['table_name'] . "` VALUES (NULL, '$tovar_id', '$username', '', '" . $_FILES['filed']['name'][$k] . "', '$apend', '$date_tek')");
if ($insert_im) {
}
else {
echo "ошибка";
}
function createThumbnail ($apend) {

$final_width_of_image = 100;
$path_to_image_directory = '../../BD/temp/'; //Папка, куда будут загружаться полноразмерные изображения
$path_to_thumbs_directory = '../../BD/temp/small_image/';
if (preg_match('/[.](jpg)$/', $apend)) {
$im = imagecreatefromjpeg($path_to_image_directory . $apend);
} else if (preg_match('/[.](jpeg)$/', $apend)) {
$im = imagecreatefromjpeg($path_to_image_directory . $apend);
} else if (preg_match('/[.](JPG)$/', $apend)) {
$im = imagecreatefromjpeg($path_to_image_directory . $apend);
} else if (preg_match('/[.](JPEG)$/', $apend)) {
$im = imagecreatefromjpeg($path_to_image_directory . $apend);
} else if (preg_match('/[.](gif)$/', $apend)) {
$im = imagecreatefromgif($path_to_image_directory . $apend);
} else if (preg_match('/[.](png)$/', $apend)) {
$im = imagecreatefrompng($path_to_image_directory . $apend);
//Определяем формат изображения
} else {
echo "error1";
}
$ox = imagesx($im);
$oy = imagesy($im);
$nx = $final_width_of_image;
$ny = floor($oy * ($final_width_of_image / $ox));
$nm = imagecreatetruecolor($nx, $ny);
imagecopyresized($nm, $im, 0, 0, 0, 0, $nx, $ny, $ox, $oy);
if (!file_exists($path_to_thumbs_directory)) {
if (!mkdir($path_to_thumbs_directory)) {
die("Возникли проблемы! попробуйте снова!");
}
}

imagejpeg($nm, $path_to_thumbs_directory . $apend);
$tn = '<img src="' . $path_to_thumbs_directory . $apend . '" alt="image" />';
$tn .= '<br />Поздравляем! Ваше изображение успешно загружено и его миниатюра удачно выполнена. Выше Вы можете просмотреть результат:';
echo $tn;
}

createThumbnail($apend);
} else {
echo "<div class='container'><center><br>Файл не загружен, вернитесь и попробуйте еще раз.</center><div>";
}
}
else {
echo "<div class='container'><center><br>Можно загружать только документы в форматах jpg, jpeg, gif, png, xls, xlsx, doc, docx, tiff, pdf .</center><div>";
}
}
}




У тебя функция создаётся в цикле, вытащи её куда нибудь выше, а лучше в отдельный файл, а лучше в отдельный класс.

И по коду куча замечаний типа:

if ($insert_im) {
}
else {
echo "ошибка";
}


                
if (!$insert_im) {
echo "ошибка";
}




--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 10 дней
Карма: 170




$allow_types = ["image/gif", "image/png", "image/jpg", "image/jpeg", 
"application/pdf", "application/excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"application/msword", "image/tiff"];
//........
//........
//........

if(in_array($_FILES['filed']['type'][$k], $allow_types)) {
//....
} else {
echo 'Недопустимый тип файла';
}


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса