|
|
|
| здравствуйте!
вот так выглядит код добавления
// Устанавливаем соединение с базой данных
require_once("../../config/config.php");
// Подключаем блок авторизации
require_once("../utils/security_mod.php");
// Подключаем классы формы
require_once("../../config/class.config.dmn.php");
// Подключаем функцию изменения размера изображения
require_once("../utils/utils.resizeimg.php");
// Защита от SQL-инъекции
$_GET['id_catalog'] = intval($_GET['id_catalog']);
if(empty($_POST)) $_REQUEST['hide'] = true;
try
{
$name = new field_text("name",
"Название",
false,
$_POST['name']);
$alt = new field_text("alt",
"alt-тег",
false,
$_POST['alt']);
$big = new field_file("big",
"файл",
false,
$_FILES,
"../../files/photo/");
$hide = new field_checkbox("hide",
"Отображать",
$_REQUEST['hide']);
$id_parent = new field_hidden_int("id_parent",
true,
$_REQUEST['id_parent']);
$page = new field_hidden_int("page",
false,
$_REQUEST['page']);
$form = new form(array("name" => $name,
"alt" => $alt,
"big" => $big,
"hide" => $hide,
"id_parent" => $id_parent,
"page" => $page),
"Добавить",
"field");
// Обработчик HTML-формы
if(!empty($_POST))
{
// Проверяем корректность заполнения HTML-формы
// и обрабатываем текстовые поля
$error = $form->check();
if(empty($error))
{
// Извлекаем текущую максимальную позицию
$query = "SELECT MAX(pos) FROM $tbl_image_position
WHERE id_catalog={$form->fields['id_parent']->value}";
$pos = mysql_query($query);
if(!$pos)
{
throw new ExceptionMySQL(mysql_error(),
$query,
"Ошибка при извлечении
текущей позиции");
}
$pos = mysql_result($pos, 0) + 1;
// Скрытый или открытая позиция
if($form->fields['hide']->value) $showhide = "show";
else $showhide = "hide";
// Изображения
$var = $form->fields['big']->get_filename();
if(!empty($var))
{
$big = "files/photo/".$var;
$small = "files/photo/s_".$var;
}
else $big = "";
// Извлекаем параметры галереи
$query = "SELECT * FROM $tbl_photo_settings LIMIT 1";
$set = mysql_query($query);
if(!$set)
{
throw new ExceptionMySQL(mysql_error(),
$query,
"Ошибка при извлечении
параметров галереи");
}
if(mysql_num_rows($set))
{
$settings = mysql_fetch_array($set);
}
else
{
$settings['width'] = 150;
$settings['height'] = 133;
}
// Формируем малое изображение
resizeimg($big, $small, $settings['width'], $settings['height']);
// Формируем SQL-запрос на добавление позиции
$query = "INSERT INTO $tbl_image_position
VALUES (NULL,
'{$form->fields[name]->value}',
'{$form->fields[alt]->value}',
'$small',
'$big',
'$showhide',
$pos,
{$form->fields[id_parent]->value})";
if(!mysql_query($query))
{
throw new ExceptionMySQL(mysql_error(),
$query,
"Ошибка при добавлении
позиции");
}
// Осуществляем редирект на главную страницу
header("Location: index.php?".
"id_parent={$form->fields[id_parent]->value}&".
"page={$form->fields[page]->value}");
exit();
}
}
// Начало страницы
$title = 'Добавление картинки';
$pageinfo = '<p class=help></p>';
// Включаем заголовок страницы
require_once("../utils/top.php");
echo "<p><a href=# onClick='history.back()'>Назад</a></p>";
// Выводим сообщения об ошибках если они имеются
if(!empty($error))
{
foreach($error as $err)
{
echo "<span style=\"color:red\">$err</span><br>";
}
}
// Выводим HTML-форму
$form->print_form();
}
catch(ExceptionObject $exc)
{
require("../utils/exception_object.php");
}
catch(ExceptionMySQL $exc)
{
require("../utils/exception_mysql.php");
}
catch(ExceptionMember $exc)
{
require("../utils/exception_member.php");
}
// Включаем завершение страницы
require_once("../utils/bottom.php");
|
каким образом применить ф-цию rename? | |
|
|
|
|
|
|
|
для: сотка
(30.12.2011 в 21:13)
| |
$i=1;
while
{
rename("$i._mysite");
$i++;
}
|
т.е чтобы было 1_mysite.jpg,2_mysite.jpg и сохранялось расширение | |
|
|
|
|
|
|
|
для: сотка
(30.12.2011 в 21:15)
| | Я что-то не вижу этой конструкции выше... у вас там один файл или нет? Какова изначальная задача? | |
|
|
|
|
|
|
|
для: cheops
(30.12.2011 в 21:20)
| | изначальная задача выводиться форма, нажимаем обзор выбираем файл и заносим в базу и файл помещается в директорию! Сейчас хочу перед занесением в базу менять файл по принципу
задаем имя директории
$path = "../../files/photo/";
$i=1;
while
{
rename("$i._mysite");
$i++;
}
|
в данном коде это не прописано! Не могу сообразить
Файлов несколько сотен поэтому применить думаю цикл | |
|
|
|
|
|
|
|
для: сотка
(30.12.2011 в 21:23)
| | Погодите, вы при помощи формы, которая приведена выше добавляете один файл? Если да, то вот пути к нему и уменьшенной копии
$big = "files/photo/".$var;
$small = "files/photo/s_".$var;
| $var - это файла, которое вы вольны заменить на свое, или добавить суффикс или ещё как-то поступить.
Или файлы уже находятся на сервере и в базе данных и речь идет о том, чтобы изменить их названия? | |
|
|
|
|
|
|
|
для: cheops
(30.12.2011 в 21:32)
| | >Погодите, вы при помощи формы, которая приведена выше добавляете один файл? Если да, то вот пути к нему и уменьшенной копии
>
$big = "files/photo/".$var;
>$small = "files/photo/s_".$var;
| $var - это файла, которое вы вольны заменить на свое, или добавить суффикс или ещё как-то поступить.
>
>Или файлы уже находятся на сервере и в базе данных и речь идет о том, чтобы изменить их названия?
$var изменить которые на сервере пусть остаются такие какие есть теперь! Например добавляю файл kartinka.jpg , нужно чтобы и в базу и в папку photo файл попал как 1_mysite.jpg, 2_mysite.jpg и так далее(файлов много) | |
|
|
|
|
|
|
|
для: сотка
(30.12.2011 в 21:40)
| | Правильно ли я понимаю, что есть директория с изображениями, из неё нужно скопировать все файлы в другую директорию, при этом осуществить их переименование? Или задача заключается в чем-то другом? | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 13:06)
| | немного не так(копировать не нужно)! заноситься файл через форму в базу данных(директория оригинала и уменьшенная копия) сам файл храниться в директории,нужно изменить название файла так,чтобы он был изменен и в директории и в пути(БД) | |
|
|
|
|
|
|
|
для: сотка
(31.12.2011 в 13:35)
| | Изменять название нужно в момент занесения? Т.е. $var в скрипте выше? Правильно ли я понимаю, что у нас в директории имеются файлы
file_1.jpg
file_2.jpg
file_3.jpg
| следующий загруженный файл, как бы он не назывался должен называться file_4.jpg? | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 13:53)
| | Да именно так | |
|
|
|
|
|
|
|
для: сотка
(31.12.2011 в 14:15)
| | Можно начать отталкиваться от следующей функции, которая проверяет указанную директорию в поисках файлов вида file_1.jpg и возвращает следующий номер, который нужно назначить загружаемому файлу.
<?php
$dir = "files/photo/";
echo get_id($dir);
function get_id($dir)
{
$number = 0;
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if(is_file($dir.$file))
{
if(preg_match("|^file_([\d]+).jpg$|", $file, $out))
{
if($number < $out[1]) $number = $out[1];
}
}
}
closedir($dh);
}
}
return $number + 1;
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 17:50)
| | спасибо за ф-цию | |
|
|
|
|
|
|
|
для: сотка
(30.12.2011 в 21:13)
| | Эээ... а к чему хотите применить функцию rename()? | |
|
|
|
|
|
|
|
для: cheops
(30.12.2011 в 21:16)
| | к картинкам! или есть другие более удобные ф-ции? | |
|
|
|
|
|
|
|
для: сотка
(30.12.2011 в 21:17)
| | Можно ли каким то образом это сделать? | |
|
|
|
|
|
|
|
для: сотка
(30.12.2011 в 23:31)
| | попробую найти нужную тему | |
|
|
|
|
|
|
|
для: Valick
(31.12.2011 в 07:02)
| | Буду благодарен! | |
|
|
|