Отслеживать действия с картинками
Автор wondertalik, 18 июня 2013 15:46
Сообщений в теме: 9
#1
Отправлено 18 Июнь 2013 - 15:46
Есть поле типа изображение. В него могут добавляться и удаляться изображения. Как отслеживать удаление и добавления изображения в это поле?
#2
Отправлено 18 Июнь 2013 - 16:52
Событие на изменение поля не работает?
#3
Отправлено 18 Июнь 2013 - 19:01
CbCoder (18 Июнь 2013 - 16:52) писал:
Событие на изменение поля не работает?
#4
Отправлено 19 Июнь 2013 - 11:27
Во-первых, событий отдельно для удаления/добавления изображений не существует, во-вторых вы же можете в событии на изменение сверить старое значение поля и новое, и самостоятельно установить что было удалено, а что - добавлено. Об этом и шла речь.
#5
Отправлено 22 Июль 2013 - 00:24
Через доп.действие нужно удалить в некоторых полях изображения. Какими методами это лучше сделать, есть ли для этого спец. функции, если удаляется изображение, будет ли удалятся та часть, что в кэше лежит или нужно будет вручную это делать?
#6
Отправлено 22 Июль 2013 - 09:18
Для удаления файла с диска есть функция drop_data_file(field_id, line_id, file_name), где:
field_id - id поля
line_id - id записи
file_name - имя файла (т.к. в поле их может быть несколько)
При этом из кэша нужно удалять отдельно вручную. Имя файла в кэше складывается, как:
table_id."_".field_id."_".line_id."_".utf2eng(file_name), где:
table_id - id таблицы
utf2eng() - функция преобразования utf-кирилицы в латиницу.
field_id - id поля
line_id - id записи
file_name - имя файла (т.к. в поле их может быть несколько)
При этом из кэша нужно удалять отдельно вручную. Имя файла в кэше складывается, как:
table_id."_".field_id."_".line_id."_".utf2eng(file_name), где:
table_id - id таблицы
utf2eng() - функция преобразования utf-кирилицы в латиницу.
#7
Отправлено 22 Июль 2013 - 10:22
CbCoder (22 Июль 2013 - 09:18) писал:
Для удаления файла с диска есть функция drop_data_file(field_id, line_id, file_name), где:
field_id - id поля
line_id - id записи
file_name - имя файла (т.к. в поле их может быть несколько)
При этом из кэша нужно удалять отдельно вручную. Имя файла в кэше складывается, как:
table_id."_".field_id."_".line_id."_".utf2eng(file_name), где:
table_id - id таблицы
utf2eng() - функция преобразования utf-кирилицы в латиницу.
field_id - id поля
line_id - id записи
file_name - имя файла (т.к. в поле их может быть несколько)
При этом из кэша нужно удалять отдельно вручную. Имя файла в кэше складывается, как:
table_id."_".field_id."_".line_id."_".utf2eng(file_name), где:
table_id - id таблицы
utf2eng() - функция преобразования utf-кирилицы в латиницу.
#10
Отправлено 25 Июль 2013 - 01:08
CbCoder (22 Июль 2013 - 09:18) писал:
При этом из кэша нужно удалять отдельно вручную. Имя файла в кэше складывается, как:
table_id."_".field_id."_".line_id."_".utf2eng(file_name), где:
table_id - id таблицы
utf2eng() - функция преобразования utf-кирилицы в латиницу.
table_id."_".field_id."_".line_id."_".utf2eng(file_name), где:
table_id - id таблицы
utf2eng() - функция преобразования utf-кирилицы в латиницу.
Однако это не полное имя как оказалось, нужно еще и расширение .png добавлять. В итоге получил
/**
*Author: --- Wondertalik --- July 25, 2013
* Функция позволяет удалять файл из указанного поля и строки
* @param $table_id айди таблицы
* @param $field_id айди поля
* @param $line_id айди записи
* @param $array_names_file содержимое выборки из поля типа файл
* @param string $cache каталог кэша
*/
function drop_data_file_w($table_id, $field_id, $line_id, $array_names_file, $cache = "cache")
{
global $config;
$array_img = array();
//проверяем сколько изображений загружено, если несколько все добавляем в ексел-файл
$array_img = explode("\n", $array_names_file);
for ($i = 0; $i < count($array_img); $i++) {
//удаляем файл из файла хранилища
drop_data_file($field_id, $line_id, trim($array_img[$i]));
//удаляем файл из кэша, если он там существует
$name_cache_file = $config['site_path'] . "/" . $cache . "/" . $table_id . "_" . $field_id . "_" . $line_id . "_" . utf2eng($array_img[$i]) . ".png";
if (file_exists($name_cache_file))
unlink($name_cache_file);
}
}
Количество пользователей, читающих эту тему: 3
0 пользователей, 3 гостей, 0 анонимных













