удалить файл php по ссылке

Удаление файла по ссылке в php

Я делаю менеджер по работе с клиентами в интрасети, работающий на автономном компьютере. Магазин добавит файлы в каждую из записей о клиентах, и когда каждая запись будет загружена, содержимое каждой папки клиентов отображается на экране внутри тегов A, чтобы сотрудники могли щелкнуть по ней и просмотреть документы, которые были добавлены для этот клиент.

Я пытаюсь добавить ссылку для удаления на каждую страницу записи пользователя, но мне не везет. Я использую следующее, я не уверен, что мне нужно получить другой php-файл для удаления или я могу поместить его в ссылку, как эта?

При нажатии на ссылку все, что я получаю, это >>

4 ответа

Вы. пытаетесь заставить ссылку запустить произвольный код PHP на сервере? Ты хоть представляешь, насколько небезопасно это было бы, если бы это работало?

Вместо этого просто сделайте так, чтобы ваша ссылка была:

Тогда ваш unlink.php файл может быть что-то вроде:

Ты не можешь сделать это так. Вы должны сделать вызов unlink в отдельном файле. В ссылке вы даете идентификатор или другой способ восстановления файла, который хотите удалить, затем в другом файле вы получаете этот идентификатор и удаляете соответствующий файл (после проверки действие разрешено).

в вашем файле ссылки:

И в вашем файле «unlink.php»:

Это ненадежный пример, не используйте его вот так.

Если бы это работало (это не так), это означало бы, что любой мог удалить практически любой файл, изменив href самостоятельно.

Вы не можете запустить такую ​​команду через HTML, как вы это сделали. вам нужно будет создать новый файл PHP и ссылку на него:

Затем страница php запустит команду unlink.

Однако имейте в виду, что здесь существуют СЕРЬЕЗНЫЕ проблемы безопасности, поскольку люди могут вводить любое имя файла по своему выбору (независимо от того, что вы задали в HTML). Также имейте в виду, что они могут перейти в каталог с помощью./ в filepath и удалить файлы на уровень выше

Источник

How to delete a file via PHP?

How do I delete a file from my server with PHP if the file is in another directory?

Here is my page layout:

I’m using the unlink function:

But this always gives me an error that the file does not exist. Any ideas?

6 Answers 6

The following should help

Run your filepath through realpath, then check if the returned path is writable and if so, unlink it.

удалить файл php по ссылке. Смотреть фото удалить файл php по ссылке. Смотреть картинку удалить файл php по ссылке. Картинка про удалить файл php по ссылке. Фото удалить файл php по ссылке

удалить файл php по ссылке. Смотреть фото удалить файл php по ссылке. Смотреть картинку удалить файл php по ссылке. Картинка про удалить файл php по ссылке. Фото удалить файл php по ссылке

удалить файл php по ссылке. Смотреть фото удалить файл php по ссылке. Смотреть картинку удалить файл php по ссылке. Картинка про удалить файл php по ссылке. Фото удалить файл php по ссылке

Check your permissions first of all on the file, to make sure you can a) see it from your script, and b) are able to delete it.

You can also use a path calculated from the directory you’re currently running the script in, eg:

(in PHP 5.3 I believe you can use the __DIR__ constant instead of dirname() but I’ve not used it myself yet)

You can delete the file using

but if you are deleting a file from it’s http path then this unlink is not work proper. You have to give a file path correct.

AIO solution, handles everything, It’s not my work but I just improved myself. Enjoy!

I know this question is a bit old, but this is something simple that works for me very well to delete images off my project I’m working on.

The dirname(__FILE__) section prints out the base path to your project. The /img/tasks/ are two folders down from my base path. And finally, there’s my image I want to delete which you can make into anything you need to.

With this I have not had any problem getting to my files on my server and deleting them.

Not the answer you’re looking for? Browse other questions tagged php file-io or ask your own question.

Linked

Related

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.9.28.40331

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Как удалить файл через PHP?

Как удалить файл с моего сервера с помощью PHP если файл находится в другой директории?

вот мой макет страницы:

Я использую unlink функция:

но это всегда дает мне ошибку, что файл не существовать. Есть идеи?

6 ответов

следующее должно помочь

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

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

вы также можете использовать путь, рассчитанный из каталога, в котором вы сейчас запускаете скрипт, например:

(в PHP 5.3 я считаю, что вы можете использовать __DIR__ константы вместо dirname() но я еще не использовал его сам)

вы можете удалить файл с помощью

но если вы удаляете файл из его http-пути, то эта ссылка не работает должным образом. Вы должны указать правильный путь к файлу.

решение AIO, обрабатывает все, это не моя работа, но я просто улучшил себя. Наслаждайтесь!

Я знаю, что этот вопрос немного старый, но это что-то простое, что работает для меня очень хорошо, чтобы удалить изображения из моего проекта, над которым я работаю.

на выводит базовый путь к вашему проекту. The /img/tasks/ две папки вниз с моего пути. И, наконец, есть мой образ, который я хочу удалить, который вы можете сделать во все, что вам нужно.

С этим у меня не было никаких проблем с получением моих файлов на моем сервере и удалением их.

Источник

unlink

(PHP 4, PHP 5, PHP 7, PHP 8)

unlink — Удаляет файл

Описание

Список параметров

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

ВерсияОписание
7.3.0В Windows теперь можно удалить файлы функцией unlink() с использованием дескрипторов, хотя раньше это не удавалось. Тем не менее, всё ещё невозможно повторно создать удалённый файл, пока все дескрипторы к нему не будут закрыты.

Примеры

Пример #1 Пример простого использования unlink()

Привет, мир!

Смотрите также

User Contributed Notes 11 notes

This will delete all files in a directory matching a pattern in one line of code.

Deleted a large file but seeing no increase in free space or decrease of disk usage? Using UNIX or other POSIX OS?

However, it’s perfectly fine for a file to have several names (see the link() function), in the same or different directories. All the names will refer to the file body and `keep it alive’, so to say. Only when all the names are removed, the body of file actually is freed.

The caveat:
A file’s body may *also* be `kept alive’ (still using diskspace) by a process holding the file open. The body will not be deallocated (will not free disk space) as long as the process holds it open. In fact, there’s a fancy way of resurrecting a file removed by a mistake but still held open by a process.

I have been working on some little tryout where a backup file was created before modifying the main textfile. Then when an error is thrown, the main file will be deleted (unlinked) and the backup file is returned instead.

Though, I have been breaking my head for about an hour on why I couldn’t get my persmissions right to unlink the main file.

Finally I knew what was wrong: because I was working on the file and hadn’t yet closed the file, it was still in use and ofcourse couldn’t be deleted 🙂

So I thought of mentoining this here, to avoid others of making the same mistake:

Here the simplest way to delete files with mask

Источник

Как удалить файл в PHP?

Давайте попробуем решить простую задачу по удалению одного файла или нескольких файлов средствами PHP. В целом, здесь нет ничего сложного, но есть масса деталей, а также вариантов решений, о которых Вам стоит знать. В своей статье я не берусь объять необъятное, но растолковать пару вопросов и привести несколько примеров, думаю, смогу. Приступим?

удалить файл php по ссылке. Смотреть фото удалить файл php по ссылке. Смотреть картинку удалить файл php по ссылке. Картинка про удалить файл php по ссылке. Фото удалить файл php по ссылке

PHP функция unlink()

Пример использования php-функции unlink():

Почему эта функция называется unlink()?

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

Примечательно здесь и то, что в Unix можно связать несколько таких точек с одними и теми же данными. Таки данные будут существовать до тех пор, пока существует хотя бы одна ссылка на них. Но если все ссылки будут уничтожены, то и сами данные будут уничтожены. Таким образом, функция unlink() предназначена для удаления именно ссылок, и уже как следствия данных файла.

Как удалить файл(ы) в PHP?

В некоторых случаях может получиться и так, что функция unlink() не будет иметь доступа к удалению файла, т.е. получаем ошибку [function.unlink]: permission denied. Это может быть связано с неправильно указанным путём к файлу или отсутствием прав доступа.

Решение проблемы многопоточности при удалении файлов

Гораздо сложнее, когда речь заходит о крупных сайтах, где велико количество одновременных запросов (потоков) к скрипту. Здесь существует ряд решений. Я же приведу лишь одно из них, основное на использовании семафоров.

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

На этом у меня всё. Надеюсь, что моя статья была Вам полезна или просто познавательно. Спасибо за внимание. Удачи!

Никто ещё не оставил комментариев, станьте первым.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *