Помощник
|
unlink и путь |
MetSerp
|
Сообщение
#1
|
||
|
|
||
|
|||
alexdrob |
7.11.2011, 21:54;
Ответить: alexdrob
Сообщение
#2
|
|
Может есть способ более универсально получить точный путь? если путь точный, то что может быть ещё точнее?) обрати внимание тчо только оригинал не найден, проверь ещё раз что файл там есть и не удаляется, выведи сколько раз повторяется удаление, мб у тебя один файл в нескольких строках записан |
|
|
MetSerp
|
Сообщение
#3
|
|
не, не удаляет оба файла, я просто привел листинг одного варнинга, так как второй идентичен
строк точно по одной результат sql запроса такой: file_name имя файла полной фотки 451274n elit4you_03 как получить более полный путь я хз. В том и суть, что он не выводит ошибку доступа, или что то подобное, а именно говорит что файл не найден. |
|
|
MetSerp
|
Сообщение
#4
|
|
начинаю подохревать что во всем виноват mod_rewrite так как инных способов закосячить путь я не вижу.
|
|
|
Cristian |
7.11.2011, 23:34;
Ответить: Cristian
Сообщение
#5
|
|
Даже если php установлен как модуль apache, mod_rewrite не влияет на обращение к файловой системе напрямую.
А что говорит file_exists на эти файлы? |
|
|
MetSerp
|
Сообщение
#6
|
|
[PHP]for ($i=0;$i<count($result[0]);$i++){
if(file_exists($_SERVER['DOCUMENT_ROOT'].'/ui/galery/original/'.$result[$i][0].'.jpg')) unlink($_SERVER['DOCUMENT_ROOT'].'/ui/galery/original/'.$result[$i][0].'.jpg'); if(file_exists($_SERVER['DOCUMENT_ROOT'].'/ui/galery/small/s'.$result[$i][0].'.jpg')) unlink($_SERVER['DOCUMENT_ROOT'].'/ui/galery/small/s'.$result[$i][0].'.jpg'); }[/PHP] отработал правильно и все снес О_О Так и не понял в чем была ошибка, так как проверка на существование файла нужна для грамотного кода, но не обязательная для рабочего. |
|
|
Mulder_hb |
8.11.2011, 10:38;
Ответить: Mulder_hb
Сообщение
#7
|
|
Если нигде выше больше нет кода удаления, то может быть в базе несколько одинаковых имен файлов? Проверь на какой итерации действительно удаляется файл, а на какой происходит ошибка.
|
|
|
MetSerp
|
Сообщение
#8
|
|
В базе все правильно, и если сначала проверять файл на существование то все сносит без ошибок и предупреждений.
До сих пор не пойму в чем прикол. |
|
|
alexdrob |
8.11.2011, 12:52;
Ответить: alexdrob
Сообщение
#9
|
|
Если нигде выше больше нет кода удаления, то может быть в базе несколько одинаковых имен файлов? Проверь на какой итерации действительно удаляется файл, а на какой происходит ошибка. вот я то же самое хотел сказать вот этим выведи сколько раз повторяется удаление, мб у тебя один файл в нескольких строках записан но как то криво выразился :) |
|
|
ZhukV |
8.11.2011, 19:49;
Ответить: ZhukV
Сообщение
#10
|
|
Мне кажется, что это прикол безопасности UNIX. Раз с таким стыкнулся.
Проверь, действительно ли права на файл (пользователь или група) принадлежат апачу, либо другому серверу (смотря какой у тебя стоит). Также можно проверить, можешь ли ты писать в файл, если сможешь, то и сможешь удалить. [PHP] $file = '/p/a/c.jpg'; if (!file_exists($file)) { // Error. Not file } else if (!is_writable($file)) { // Error. Not write in file } else { $status = unlink ($file); } [/PHP] Скорее всего нужно смотреть по правам, поскольку, если ты к примеру загрузиш файл через ФТП, или СФТП, то права на файл совсем другие и апач не имеет к ним доступу кроме чтения. |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Книга "Веб-райтинг: путь к успеху" запилил в виде курса |
12 | grumdas | 13645 | 21.3.2016, 8:47 автор: grumdas |
Текстовая версия | Сейчас: 23.4.2024, 10:17 |