[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: unlink()
nugle
Всем привет!
Вопрос такого типа: есть картинка, её нужно удалить аяксом, но проблема в том, что unlink() мне говорит, что не существует такого файла, когда в тоже время директория проходит проверку file_exists и причем удачно.
$dir = '../img/products/img.jpg';

if (file_exists($dir)) {
echo 'true1';
if (unlink($dir)) {
echo 'true2';
} else {
echo 'false2';
}
}
else {
echo 'false1';
}


В чем собственно проблема?



Спустя 2 минуты, 43 секунды (27.01.2012 - 21:40) Winston написал(а):
А если попробовать прописать?
$dir = $_SERVER['DOCUMENT_ROOT'] . '/img/products/';

Спустя 5 минут, 34 секунды (27.01.2012 - 21:46) nugle написал(а):
аналогичная ситуация, ничего не меняется

Спустя 1 минута, 23 секунды (27.01.2012 - 21:47) cyberside написал(а):
а если убрать последний слеш?
$dir = $_SERVER['DOCUMENT_ROOT'] . '/img/products';

Спустя 5 минут, 32 секунды (27.01.2012 - 21:53) nugle написал(а):
то же самое

Спустя 1 минута, 40 секунд (27.01.2012 - 21:54) Winston написал(а):
Запусти PHP скрипт. напрямую, удаление произойдет?

Спустя 30 секунд (27.01.2012 - 21:55) cyberside написал(а):
ТЫЦ
$dir = $_SERVER['DOCUMENT_ROOT'] . '/img/products'; rmdir($dir);

Спустя 7 минут, 18 секунд (27.01.2012 - 22:02) nugle написал(а):
Winston
пишет доступ запрещен
cyberside
мне там картинку надо удалять, а дирикторию написал, чтобы не напрягать чужой мозг)

Спустя 5 минут, 56 секунд (27.01.2012 - 22:08) bob marley написал(а):
Ссылку полную,во-первых.

$domain = parse_url($_SERVER['HTTP_HOST']);
$domain = 'http://'.$domain['path'].'/';
$dir = $domain.'img/products/';
...


Во-вторых,для удаления используй rmdir() !
И ещё проверь chmod,может там ограничения на выполнения стоят!

Спустя 1 минута, 45 секунд (27.01.2012 - 22:10) Winston написал(а):
Цитата (nugle @ 27.01.2012 - 21:02)
пишет доступ запрещен

Ты на винде пытаешься удалить?

Цитата
а дирикторию написал, чтобы не напрягать чужой мозг)

Ну так для удаления дир и файла разные ф-и smile.gif

Спустя 2 минуты, 9 секунд (27.01.2012 - 22:12) nugle написал(а):
Winston
да

Цитата
Ну так для удаления дир и файла разные ф-и

тогда извиняюсь) мне нужно изображение удалять
$dir = SPH_ROOT . 'img/products/Ж2_1.jpg';
unlink($dir);

так не работает, пишет файл не найден, хотя он есть

Спустя 2 минуты, 28 секунд (27.01.2012 - 22:14) bob marley написал(а):
nugle
это вообще другой разговор.
у тебя денвер или просто php установлен?

Спустя 47 секунд (27.01.2012 - 22:15) nugle написал(а):
аналог денвера, irsys

Спустя 59 секунд (27.01.2012 - 22:16) bob marley написал(а):
nugle
пробовал делать как я тебе писал?

Спустя 2 минуты, 40 секунд (27.01.2012 - 22:19) Winston написал(а):
Цитата (nugle @ 27.01.2012 - 21:12)
SPH_ROOT

Константа не будет пахать.

Спустя 1 минута, 34 секунды (27.01.2012 - 22:20) bob marley написал(а):
nugle
вот попробуй сделать как я писал,если проблема решится с тебя +1 wink.gif

Спустя 3 минуты, 55 секунд (27.01.2012 - 22:24) nugle написал(а):
Winston
там и не константа не работает
bob marley
да, тоже самое

Спустя 7 минут, 33 секунды (27.01.2012 - 22:32) bob marley написал(а):
nugle
блин..а попробуй на хостере каком-нибудь!

Спустя 6 минут, 32 секунды (27.01.2012 - 22:38) bob marley написал(а):
$dir = '../img/products/'; А папка пуста?Удалять директорию можно только с помощью rmdir() ,при условии что папка пуста!!!Я вспомнил!

Спустя 2 минуты, 20 секунд (27.01.2012 - 22:41) nugle написал(а):
bob marley
читай внимательнее мои посты, если пытаешься помочь. я потом исправился, сказал,что мне нужно изображения из папки удалять

Спустя 4 минуты, 41 секунда (27.01.2012 - 22:46) bob marley написал(а):
nugle
изображения?отредактируй тогда первое сообщение свое!
если удалять изображение..кинь код твой ещё раз,где уже изображение удаляется!

Спустя 4 минуты, 54 секунды (27.01.2012 - 22:50) nugle написал(а):
с сервер рут тоже самое, хоть абсолютные пути, хоть относительные, не пробиваемая функция
$dir = '../img/products/'.$article;

unlink($dir);

Спустя 3 минуты, 33 секунды (27.01.2012 - 22:54) bob marley написал(а):
nugle
А что в переменной $article?

Спустя 3 минуты, 12 секунд (27.01.2012 - 22:57) nugle написал(а):
Имя картинки, к примеру Ingram.jpg

Спустя 2 минуты, 6 секунд (27.01.2012 - 22:59) bob marley написал(а):
У меня на денвере работает код твой!!!
<?php
$article = "1.jpg";
$dir = 'img/products/'.$article;
unlink($dir);

А если делать полную ссылку не работает и если точечки тоже не пашет.надо походу чтобы обработчик(этот код) находился совместно с папкой "img" в данном случае..Как-то так..

Спустя 1 минута, 3 секунды (27.01.2012 - 23:00) bob marley написал(а):
Я не знаю,можно ли назвать это решением проблемы конечно.. biggrin.gif
но все же перемести обработчик!

Спустя 2 минуты, 59 секунд (27.01.2012 - 23:03) bob marley написал(а):
Все я спать smile.gif
Жду спс в карму ph34r.gif

Спустя 16 часов, 51 минута, 45 секунд (28.01.2012 - 15:55) nugle написал(а):
Доброго всем дня!
Проблема до сих пор актуальна.
$dir = 'img/products/Ж2_1.jpg';

echo $dir.'<br />';
if(file_exists($dir)) echo 'yes'; else echo 'no';
unlink($dir);

Но, что я заметил. если положить текстовый файл в папку, то скрипт его удаляет, а картинку не хочет

Спустя 2 минуты, 14 секунд (28.01.2012 - 15:57) neadekvat написал(а):
Используй путь от корня.

Спустя 51 секунда (28.01.2012 - 15:58) Winston написал(а):
Если у тебя кодировка UTF-8, а в имени картинки кириллица "Ж2_1", то могут быть проблемы, попробуй написать имя картинки латиницей.

Спустя 2 минуты, 32 секунды (28.01.2012 - 16:01) nugle написал(а):
Winston
спасибо, но а как сделать, чтобы и кириллицу поддерживала unlink?

Спустя 1 минута, 5 секунд (28.01.2012 - 16:02) Winston написал(а):
Цитата (nugle @ 28.01.2012 - 15:01)
спасибо, но а как сделать, чтобы и кириллицу поддерживала unlink?

Картинку с латинским именем удаляет?

Спустя 1 минута, 7 секунд (28.01.2012 - 16:03) nugle написал(а):
Winston
да

Спустя 1 минута, 15 секунд (28.01.2012 - 16:04) Winston написал(а):
Как вариант попробовать так
$dir = 'img/products/Ж2_1.jpg';

echo $dir.'<br />';
if(file_exists($dir)) echo 'yes'; else echo 'no';

$dir = iconv('UTF-8', 'WINDOWS-1251', $dir);
unlink($dir);

Спустя 2 минуты, 50 секунд (28.01.2012 - 16:07) inpost написал(а):
nugle
Я бы сказал вот. Правила:
1. Не давать рус. имена.
2. Не использовать спец.символы.
3. Не использовать пробелы

Спустя 3 минуты, 41 секунда (28.01.2012 - 16:11) nugle написал(а):
inpost
Тут дело все в том, что:
1. На сайт будут загружаться картинки(загружать в дальнейшем буду не я)
2. Я же не буду каждому пользователю объяснять, что хорошо, а что плохо
3. Поэтому пытаюсь сделать универсально)
Winston
сейчас попробую

Спустя 41 секунда (28.01.2012 - 16:11) inpost написал(а):
nugle
А вот теперь вспоминаем, как мы копируем на сайт картинки? Функция вторым параметром что передаёт? smile.gif

Спустя 8 минут, 37 секунд (28.01.2012 - 16:20) nugle написал(а):
inpost
я вот как раз таки и забыл, что там тоже использую iconv(просто всего первый раз с ней работаю)
Winston
великолепно, все работает)

Спустя 6 минут, 4 секунды (28.01.2012 - 16:26) inpost написал(а):
nugle
Эх ты... я же вопрос не случайно задал...

Спустя 36 минут, 8 секунд (28.01.2012 - 17:02) nugle написал(а):
inpost
2 параметром мы передаем путь куда копируем картинку

Спустя 6 минут, 29 секунд (28.01.2012 - 17:09) inpost написал(а):
nugle
Ты в этом уверен? Вот выведи ту переменную полностью и посмотри внимательно smile.gif

Спустя 3 минуты, 55 секунд (28.01.2012 - 17:13) nugle написал(а):
мы о том говорим
bool move_uploaded_file ( string filename, string destination )?

Спустя 2 минуты, 48 секунд (28.01.2012 - 17:15) Winston написал(а):
nugle
Да smile.gif

Спустя 10 минут, 5 секунд (28.01.2012 - 17:25) nugle написал(а):
string destination - путь назначения
у меня реализован так $destination = $upload_dir .'/' . iconv('UTF-8', 'windows-1251', $_FILES['userfile']['name'][$i]);

Спустя 1 минута, 39 секунд (28.01.2012 - 17:27) inpost написал(а):
echo $destination... что выведет? Ты сказал, что выведет ПУТЬ до директории, куда копируется файл. Я сказал, чтобы ты проверил.

Спустя 2 минуты, 27 секунд (28.01.2012 - 17:30) nugle написал(а):
inpost
не, имел ввиду путь и имя файла

Спустя 58 секунд (28.01.2012 - 17:30) inpost написал(а):
Ну что мне из тебя всё вытягивать приходится? Кто из нас тут нуждается в знаниях?! smile.gif
Ну так ты говоришь, что "имя файла", а что ты с именем после делаешь? Вот есть у тебя имя, и как ты делаешь связь данных с файлом?

Спустя 3 минуты, 40 секунд (28.01.2012 - 17:34) Winston написал(а):
Можно вот так сделать
Свернутый текст
function translit($text)
{
$trans = array("а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e", "ё"=>"yo","ж"=>"j","з"=>"z","и"=>"i","й"=>"i","к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t", "у"=>"y","ф"=>"f","х"=>"h","ц"=>"c","ч"=>"ch", "ш"=>"sh","щ"=>"sh","ы"=>"i","э"=>"e","ю"=>"u","я"=>"ya",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E", "Ё"=>"Yo","Ж"=>"J","З"=>"Z","И"=>"I","Й"=>"I","К"=>"K", "Л"=>"L","М"=>"M","Н"=>"N","О"=>"O","П"=>"P", "Р"=>"R","С"=>"S","Т"=>"T","У"=>"Y","Ф"=>"F", "Х"=>"H","Ц"=>"C","Ч"=>"Ch","Ш"=>"Sh","Щ"=>"Sh", "Ы"=>"I","Э"=>"E","Ю"=>"U","Я"=>"Ya",
"ь"=>"","Ь"=>"","ъ"=>"","Ъ"=>"");
return strtr($text, $trans);
}
$name = iconv('UTF-8', 'windows-1251', translit($_FILES['userfile']['name'][$i])
$destination = $upload_dir .'/' . $name);

И не придется заморачиваться насчет русских имен.
А еще можно добавлять time() к имени картинки, чтобы не было проблем с одинаковыми именами.

Спустя 53 секунды (28.01.2012 - 17:35) inpost написал(а):
Winston
Ну что ты сразу код готовый даёшь, я хотел, чтобы человек сам к этому пришел smile.gif

Спустя 4 минуты, 28 секунд (28.01.2012 - 17:39) Winston написал(а):
Свернутый текст
Цитата (inpost @ 28.01.2012 - 16:35)
Ну что ты сразу код готовый даёшь, я хотел, чтобы человек сам к этому пришел

Ну вот такой я, плохой я biggrin.gif

Спустя 4 минуты, 1 секунда (28.01.2012 - 17:44) inpost написал(а):
Winston
Тебя надо наказать! Выбирай, минус или отшлёпать?

Спустя 3 минуты (28.01.2012 - 17:47) nugle написал(а):
inpost
хоть ответ я и понял, но твоего вопроса я не понял
как делаю связь с файлом. из бд

Winston
спасибо)

Спустя 6 минут, 15 секунд (28.01.2012 - 17:53) inpost написал(а):
Ну да, вот смысл добавлять на сайт файлы, они же где-то на сайте отображаются, правильно? И указывается их путь... Вот как у тебя связана форма загрузки с выводом в нужном разделе... вот что за вопрос был!
Но раз ответ уже показали тебе, хотя до этого ты мог и сам догадаться, подумай, как решить остальные 2 проблемы: спец-символы И пробелы )

Спустя 5 минут, 51 секунда (28.01.2012 - 17:59) nugle написал(а):
inpost
благодарю)

Спустя 1 час, 19 минут, 12 секунд (28.01.2012 - 19:18) bob marley написал(а):
nugle
что до сих пор не пашет?! ohmy.gif
Я кидал тебе код,он у меня работал!!
Попробуй на хостинг кинь!!!Мне кажется все-таки это денвер(или что там?!) у тебя мозги еб** !

Спустя 28 минут, 5 секунд (28.01.2012 - 19:46) nugle написал(а):
bob marley
аааа, читай все посты, а не через один))) дело было в том, что у меня картинки состояли из русских букв

Спустя 15 минут, 32 секунды (28.01.2012 - 20:01) bob marley написал(а):
nugle
biggrin.gif извентиляюсь
Просто много читать не люблю=Ъ
Быстрый ответ:

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