[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление одного файла
Lenarfate
вот подскажите, как удалить из директории только один файл, который выбирается чекбоксом непосредственно на странице?

так
$open = opendir($dir);

while($file = readdir($open))
unlink($dir . $file);

удаляет все, нужно только определенный файл unsure.gif



Спустя 52 минуты, 15 секунд (22.02.2010 - 17:09) japanxt2 написал(а):
побольше информации уважаемый!!!

Спустя 5 минут, 56 секунд (22.02.2010 - 17:15) Lenarfate написал(а):
куда подробнее?)) есть фотогалерея. фотки хранятся в папке. при нажатии на определенную фотку, она должна удаляться из папки. вот. запутался, не выходит ни фига(

Спустя 12 минут, 13 секунд (22.02.2010 - 17:27) Lenarfate написал(а):
все умерли что ли? sad.gif

Спустя 5 часов, 38 минут, 43 секунды (22.02.2010 - 23:06) sergeiss написал(а):
А я не понял - как именно ты указываешь фотку, которую удалять? Вводится ее имя, или делается выбор через чек-бокс, или из списка выбор?

Спустя 19 минут, 33 секунды (22.02.2010 - 23:26) Lenarfate написал(а):
чекбоксом выбор делаю

Спустя 23 минуты, 26 секунд (22.02.2010 - 23:49) sergeiss написал(а):
Уже лучше smile.gif Хоть что-то ты "прояснил" для местного телепатического общества smile.gif

А передача параметров с формы идет как: через GET или POST?

Спустя 13 минут, 34 секунды (23.02.2010 - 00:03) Lenarfate написал(а):
через post.

а насчет
Цитата
Хоть что-то ты "прояснил" для местного телепатического общества
я написал еще сначала
Цитата
который выбирается чекбоксом
biggrin.gif laugh.gif

Спустя 3 минуты, 44 секунды (23.02.2010 - 00:06) sergeiss написал(а):
ОК, пусть чек-бокс будет. Уже это понятно smile.gif

Но лучше всего покажи свой код, иначе будет "гадание на кофейной гуще". И мне, как и другим людям, просто не интересно задавать кучу вопросов. Зачем, вобщем-то? Это же тебе нужно, а не кому-то еще smile.gif Вот ты и озаботься, чтобы вопрос грамотно задать.
Типа того: вот мой код (в разумных пределах, не надо "портянок"!), вот тут понятно, а вот тут делает не то, что я хочу (как вариант, тут не знаю, как сделать). Ну, и так далее.

Спустя 8 минут, 55 секунд (23.02.2010 - 00:15) twin написал(а):
да всё он показал...
$open = opendir($dir);

while($file = readdir($open))
unlink($dir . $file);

конечно все удалит... а условие где?
$open = opendir($dir);

while($file = readdir($open))
if($file == $_POST['file'])
unlink($dir . $file);

думаем в этом направлении

Спустя 6 минут, 3 секунды (23.02.2010 - 00:21) japanxt2 написал(а):
twin, wink.gif как элементарно и как логично, вы сам мозггг biggrin.gif

Спустя 1 минута, 8 секунд (23.02.2010 - 00:22) sergeiss написал(а):
Цитата (twin @ 23.02.2010 - 01:15)
да всё он показал...

Да вот и фигня, что не всё smile.gif Потому что речь шла о чек-боксе, а его он не показал. Типа, "нафиг он тут не нужен". А что там в чек-боксе? Имя файла для удаления? Или имя файла в другом поле сидит, которое рядом с чек-боксом?

Спустя 7 минут, 49 секунд (23.02.2010 - 00:30) Lenarfate написал(а):
в чекбоксе имя = form[array1][]

Спустя 35 минут, 10 секунд (23.02.2010 - 01:05) twin написал(а):
sergeiss
Цитата
Да вот и фигня, что не всё

Факт... Но направление то можно задать из имеющихся условий. smile.gif

Спустя 10 дней, 21 час, 2 секунды (3.03.2010 - 22:05) Lenarfate написал(а):
в общем, так и не получается.
$open = opendir(ROOT .'/uploads/');

while($file = readdir($open))
{
if($file == $POST['array1'])
unlink($open . $file);
}


в $POST['array1'] передаются отмеченные чекбоксы. файлы ни фига не удаляются sad.gif

Спустя 2 дня, 20 часов, 38 минут, 39 секунд (6.03.2010 - 18:44) Lenarfate написал(а):
????

Спустя 19 минут, 4 секунды (6.03.2010 - 19:03) eLuge написал(а):
Lenarfate
вам не смогут помочь. Никто не знает какое значение Вы передаёте в чекбоксах, как хранятся файлы и т.д. и т.п.

Допустим, информация о файле хранится в БД. Пользователь видит картинки и чекбоксы, передающие id записи об этом файле. Принимаете из пост массив отмеченных чекбоксов, циклом проходите по нему и, если файл существует, то удаляете его и запись в базе.

вот это само по себе очень страшно smile.gif
$open = opendir(ROOT .'/uploads/');

while($file = readdir($open))
{
if($file == $POST['array1'])
unlink($open . $file);
}
Для чего сканировать весь каталог чтобы удалить файл?

Спустя 11 минут, 14 секунд (6.03.2010 - 19:14) Lenarfate написал(а):
что-то типа
$take = count($POST['array1']);
for($i = 0; $i < $take; $i++)
{
if(file_exists(ROOT .'/uploads/'. $take[$i]))
{
unlink(ROOT .'/uploads/'. $take[$i]);
}
}


??

Спустя 19 минут, 22 секунды (6.03.2010 - 19:34) eLuge написал(а):
бр.
как-нибудь так. Поправьте для своего варианта

if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {
// возможно мы по посту делаем что-то ещё…

if (isset($_POST['array1']) && !empty($_POST['array1'])) {
clearstatcache();
foreach ($_POST['array1'] as $v) {
$file = ROOT . '/uploads/'. $v;
if (file_exists($file)) {
if (!unlink($file)) {
logError('fail delete', $file);
}
}
else {
logError('file not found', $file);
}
}
}
}


logError() — просто логирование ошибок, если не нужна — выбросьте

Спустя 5 минут, 25 секунд (6.03.2010 - 19:39) Lenarfate написал(а):
не, не пашет

Спустя 10 минут, 27 секунд (6.03.2010 - 19:50) eLuge написал(а):
оно и не должно работать без понимания что просходит

скрипт удаления файлов, когда имена файлов приходят как value из чекбоксов я тебе дал. А напильником можно поработать и самостоятельно. Верно?

Спустя 4 минуты, 41 секунда (6.03.2010 - 19:54) Lenarfate написал(а):
в чекбоксах ИД

Спустя 1 минута, 27 секунд (6.03.2010 - 19:56) eLuge написал(а):
id записей в базе? И там же имя файла?

Спустя 1 минута, 32 секунды (6.03.2010 - 19:57) Lenarfate написал(а):
да

Спустя 13 минут, 7 секунд (6.03.2010 - 20:10) eLuge написал(а):
ну, так
<?php
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {

if (isset($_POST['array1']) && !empty($_POST['array1'])) {

foreach ($_POST['array1'] as $k => $v) {
$_POST['array1'][$k] = (int)$v;
}

$where = implode(',', $_POST['array1']);

// имена под себя поправьте
$sql = 'SELECT filename FROM таблица WHERE id IN ('.$where.')';
$res = mysql_query($sql);

clearstatcache();

while ($row = mysql_fetch_assoc($res)) {
$file = ROOT . '/uploads/'. $row['filename'];

if (file_exists($file)) {
if (unlink($file)) {
$sql = 'DELETE FROM таблица WHERE id IN ('.$where.')';
mysql_query($sql);
} else {
logError('fail delete', $file);
}
}
else {
logError('file not found', $file);
}
}
}
}

?>
попробуйте сами разобраться

Спустя 1 час, 50 минут, 21 секунда (6.03.2010 - 22:01) Lenarfate написал(а):
спасибо)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.