Удаление видеофайлов с помощью unlink () в PHP 7

У меня возникла проблема с удалением видеофайлов из папки с помощью функции php unlink(), изображение удаляется, но при попытке удалить видео он говорит

unlink(file_path) : permission denied.

Разрешения файлов для изображений такие же, как и для видео?

jrswgtr 29.07.2018 12:03

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

Nikolai Sleta 29.07.2018 12:04

@jrswgtr, я не знаю, как это проверить в Windows, я использую Windows 7. Но изображения и видео находятся в одном каталоге

mrcoder 29.07.2018 12:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
596
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

Ваш каталог изображений будет другим и доступен для записи для веб-сервера или cli.

chmod("your/video/dir/path",0777);

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

если это связано с разрешением, то как изображения удаляются из одного каталога?

mrcoder 29.07.2018 12:14

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

piyush 29.07.2018 12:18

Спасибо, я проверил видеофайл, в нем установлен флажок «Только для чтения», я снял его, и все работало нормально.

mrcoder 29.07.2018 12:21

Обновлено: похоже, вы используете Windows. К сожалению, мой ответ касается Unix-подобных операционных систем (например, Linux, MacOS). Вы можете попробовать установить расширение Bash для Win8 +, но я все же не уверен, что это сработает. Тем не менее, я сохраняю свой ответ на случай, если кто-то, у кого возникнет аналогичная проблема, ищет здесь ответ.

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

Лучшее решение - создать каталог, в котором вы будете хранить файлы, к которым PHP будет иметь полный доступ. Назовем его dirname. После того, как вы создали каталог, измените его владельца и группу на тот, который соответствует имени пользователя вашего веб-сервера (если вы используете Apache, это «www-data»), например: chown www-data:www-data dirname.

Как только вы это сделаете, измените права доступа к папке. Мое предложение - 744, он гарантирует, что пользователь, которому он принадлежит, будет иметь все разрешения, а все остальные смогут только его читать. Для этого выполните следующую команду: chmod -R 777 dirname.

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

Другие вопросы по теме