|
|
|
| доброе время суток форумчане
есть такой вопрос можно ли удалять картинки из папки средством php. например если картинка нигде не используется то удаляем ее если используется то оставляем? если можно то подскажите куда рыть если так как я опсиал не возможно то хотябы что то наподобе этого подскажите | |
|
|
|
|
|
|
|
для: NoCash
(17.04.2010 в 12:08)
| | Что-то все упорно хотят быть кротами...
unlink(path/filename.ext) и нет картинки. Можете рыть. | |
|
|
|
|
|
|
|
для: sim5
(17.04.2010 в 12:12)
| | unlink(e_PLUGIN."nboard/images/nb_pictures/$gnl_picbig"); пишу вот такое и ничево не происходит картинка не удалятся( что то не так понял? или ошибка в коде?
хы ну если сказать название файла то удалиться. а если я незнаю название загружаемого файла? то что? | |
|
|
|
|
|
|
|
для: NoCash
(17.04.2010 в 12:28)
| | а если не знаете Вы , откуда узнает машина?
Машина может сделать лишь то, что может сделать человек. Вся разница лишь в том, что она это сделает быстрее. | |
|
|
|
|
|
|
|
для: Trianon
(17.04.2010 в 12:50)
| | я имею ввиду что если дать название картинки которая загружена то удаляется а если я напишу переменную то она не удаляется | |
|
|
|
|
|
|
|
для: NoCash
(17.04.2010 в 12:51)
| | Значит Вы должны написать такую переменную, в которой лежит хорошее, годное название.
И сперва убедиться в этом, а потом уже функцию удаления вызывать.
Иначе можно много чего посрубать. | |
|
|
|
|
|
|
|
для: Trianon
(17.04.2010 в 12:58)
| | $sql -> db_Select("nb_gnl", "*");
while($row = $sql -> db_Fetch()){
$gnl_id = $row['gnl_id'];
$pic=$row['gnl_picbig'];
}
$addr = e_PLUGIN."nboard/images/nb_pictures/".$pic;
unlink($addr);
вот так вот сделал не удаляется( | |
|
|
|
|
|
|
|
для: NoCash
(17.04.2010 в 13:15)
| | это всё в пользу бедных.
Вы вместо unlink напишите echo
Путь к картинке, кстати, должен быть полным серверным, воизбежание неоднозначностей. | |
|
|
|
|
|
|
|
для: Trianon
(17.04.2010 в 13:19)
| | выводит путь переменная где то теряется | |
|
|
|
|
|
|
|
для: NoCash
(17.04.2010 в 13:27)
| | Выходит у Вас не удаление не работает.
А вычисление пути.
Над этим и работайте. | |
|
|
|
|
|
|
|
для: NoCash
(17.04.2010 в 13:15)
| | А по какой причине у вас "мертвые души" появляются? | |
|
|
|
|
|
|
|
для: sim5
(17.04.2010 в 18:54)
| | мертвые души появляются от того что обьявление удаляет юзер а картинка из папки не удаляется | |
|
|
|
|
|
|
|
для: NoCash
(23.04.2010 в 11:39)
| | так наверное тогда сперва имеет смысл найти ошибку и исправить её в том скрипте, который запрос на удаление объявления пользователем исполняет?
А то Вы так никогда от этих душ не избавитесь. | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2010 в 11:45)
| | а в том скрипе все верно. дело в том что картинка сохраняется не в базе а в папочке. поэтому и появилась необходимость удалять картинки как нибудь если они не используются | |
|
|
|
|
|
|
|
для: NoCash
(23.04.2010 в 11:54)
| | а в том скрипе все верно.
а вот и фиг Вы угадали... (если ошибки нет в синтаксисе, то налицо ошибка в логике)
там дописать-то пару строк всего
если картинка не нужна, то какой смысл ее оставлять?? пусть она лежит где угодно, но ассоциация с объявлением есть, и в чем проблема ее удалить?
Покажите участок кода, где происходит удаление | |
|
|
|
|
|
|
|
для: NoCash
(23.04.2010 в 11:54)
| | знаете как происходит удаление папки?
сначала удаляются все файлы в этой папке, а затем удаляется сама папка.
теперь представте, что объявление - это папка, а картинки - это файлы.
делаете запрос к базе и выбираете все пути картинок относящихся к данному объявлению (хоть полтора миллиона), в цикле удаляете все картинки (если картинок нет, то и удалять нечего), а затем удаляете само объявление | |
|
|
|
|
|
|
|
для: NoCash
(23.04.2010 в 11:54)
| | Так их проще удалять сразу с удалением объявления, не дожидаясь, пока накопится.
Да и серверу полегше. | |
|
|
|
|
|
|
|
для: NoCash
(23.04.2010 в 11:39)
| | А проверить есть ли картинка у сообщения и если есть, удалить ее при удалении сообщения религия не позволяет? | |
|
|
|
|
|
|
|
для: sim5
(23.04.2010 в 12:36)
| |
if(isset($_POST['del'])){
$sql -> db_Delete("nb_gnl", "gnl_id=$gnl_id");
}
| это функция удаления обьявления.
удалять папку мне совсем не нужно, мне нужно удалять картинки из этой папки если она не используется в обьявлении.
проблемма в том что обьявление записывается в базу а картинка в папку.
наприме пользователь жмукнул по кнопке удалить и его выбранное обьявление удалилось из базы но картинка осталась. вот мне и захотелось придумать что нибудь. что бы картинка удалялась либо сразу либо была какая нидь проверка по картинкам и если они не используются то в топку их. | |
|
|
|
|
|
|
|
для: NoCash
(23.04.2010 в 13:15)
| | А я вам разве предлагаю удалять папку? У вас информаци о наличии изображения в сообщение где хранится? Так прежде чем удалять само сообщение, видимо сперва нужно проверить имеет ли оно изображение, и если да, то удалить его, а затем удалить запись в базе. Вы же "паспортные данные" изображения удаляете, совсем не задумываясь, порождая таким образом лишние проблемы для себя. | |
|
|
|
|
|
|
|
для: sim5
(23.04.2010 в 13:44)
| | информация в базе записывается там записывается название картинки без пути или путя(точно незнаю как правльно просклонять слово путь) т.е получается нужно написать токе действие
<?php if (isset($_POST['del'])){
sql -> db_Select("nb_gnl", "*")
while($row = $sql -> db_Fetch())
{
gnl_id=$row['gnl_id']
gnl_pic=$row['gnl_pic'];
if (gnl_pic != ""){
$addr = e_PLUGIN."nboard/images/nb_pictures/".$pic;
unlink($addr);
}
$sql -> db_Delete("nb_gnl", "gnl_id=$gnl_id");
}?>
|
еще не тестил то что написал просто хотел спросить логика верна? | |
|
|
|
|
|
|
|
для: NoCash
(23.04.2010 в 14:09)
| | Что означает $_POST['del']? Надо полагать, что номер записи, не понятно тогда, почему выборка "безымянная". Что у вас к чему я не знаю, почему $pic не равна $gnl_pic, и откуда она вообще взялась у вас, а надо полагать, что $gnl_pic и есть имя изображения в базе... Вся суть - проверить значение поля имени изображения, и если YES, удаляйте его изображение. Так что, думаю, разберетесь, а со своими переменными разбирайтесь сами. | |
|
|
|
|
|
|
|
для: sim5
(23.04.2010 в 14:38)
| | поправил некоторые ошибки написанные в коде и все гуд удаляет)) $_post['del'] это кнопка удаления | |
|
|
|