Как удалить файл с upload
Причины, из-за которых папка или файл не удаляются
Невозможность удаления файла может быть объяснена несколькими причинами:
- Недостаточно прав на выполнение операции удаления.
- Файл используется другим пользователем или программой.
- Папка или файл повреждены.
- На носителе, на котором расположен интересующий файл, установлена защита от записи, а, значит, и от удаления.
Решить возникшую проблему можно разными способами: воспользоваться возможностями, которые есть в операционной системе, либо прибегнуть к помощи сторонних утилит, которые и предназначены для выполнения подобных действий. Рассмотрим все методы избавления от ненужных файлов.
Следует только сделать одну оговорку – вы уверены, что предназначенный для удаления файл действительно ненужный? ОС Windows защищает папки и файлы, необходимые для ее стабильного функционирования, и попытки настоять на своем могут привести к «падению» системы и необходимости решать уже совсем другие задачи. Прежде, чем приступать к удалению файлов, убедитесь, что это действительно «мусор». Особенно аккуратным следует быть при избавлении от объектов в системных папках.
Проверка защиты от записи
Прежде чем приступать к каким-то радикальным методам, следует убедиться в том, что вы имеете право удалять файлы. Если они расположены на флешках или картах памяти, то начать надо с самого простого – убедиться, что механический переключатель, который предотвращает запись/стирание, не установлен в соответствующее положение, блокирующее выполнение подобных действий.
Проверка на вирусы
Файл может оказаться вирусом, той или иной вредоносной программой, или ее частью, удалить которую не удается. Если давно не было проведено сканирование компьютера на вирусы, следует сделать это. Если были найдены и обезврежены подозрительные программы, надо попробовать удалить этот файл.
Проверка доступа к файлу
Помогающий в некоторых случаях способ удалить файл – перезагрузка компьютера. Вполне возможно, что тот объект, от которого необходимо избавиться – результат работы той или иной программы, которая была деинсталлирована некорректно, или это было выполнено не полностью, и в системе остались какие-то программные модули (DLL, процессы), которые все еще работают и не позволяют выполнить удаление. Вполне возможно, что после перезапуска системы ненужные процессы работать не будут и файл освободится от излишней опеки. Удаляйте.
Другой момент – запрет на выполнение операций записи/стирания в данной папке, установленный администратором компьютера. Необходимо зайти в свойства папки, и на вкладке «Безопасность» проверить выданные права.
Если разрешено только чтение, то следует дать полный доступ к данной папке, после чего возможно будет производить любые действия со всеми файлами, в ней находящимися. Следует быть особенно аккуратным с системными папками.
Использование «Диспетчера задач»
Для этого достаточно просто закрыть эту программу (если есть такая возможность), либо остановить выполняющийся процесс. Для этого понадобиться открыть «Диспетчер задач», что можно сделать нажатием комбинации клавиш «Ctrl»+«Shift»+«Esc». После этого на вкладке «Процессы» надо найти блокирующий доступ к файлу процесс и завершить его.
После этого файл можно попробовать удалить. Скорее всего, это получится.
Использование командной строки
Для того, чтобы воспользоваться этим средством, нужно запустить командную строку, для чего после нажатия кнопки «Пуск» в поле поиска ввести «cmd», нажать правую кнопку мыши и выбрать режим запуска с административными правами. Откроется окно, в котором следует ввести команды на удаление файла или папки.
Этим способом можно попробовать удалить поврежденный файл.
Удаление файла
Используется команда «Del». Надо ввести строку:
/F – принудительное удаление файлов, помеченных как доступные только для чтения.
/Q – не выдавать запрос на подтверждение операции удаления.
/S – удаление вложенных папок и файлов в них.
На скриншоте показан пример. Естественно, путь у вас будет другой.
Удаление папки
Для удаления папки целиком используется другая команда:
/S – удаление вложенных папок и файлов.
/Q — не выдавать запрос на подтверждение операции удаления.
Пример показан следующем скриншоте.
Использование безопасного режима
Если остановить блокирующий доступ к файлу процесс не удается по тем или иным причинам, или непонятно, какой же процесс мешает, то может помочь этот способ, при котором система загружается в безопасном режиме. При этом стартует необходимый минимум процессов, и тот, который «держал» файл, останется в неактивированном состоянии. Можно попробовать удалить файл.
Использование загрузочного диска
Случается, что даже безопасный режим не позволяет избавиться от ненужной папки или файла. Тогда может помочь загрузка с внешнего загрузочного диска. Как вариант – жесткий диск, на котором необходимо произвести удаление файлов, можно подключить к другому компьютеру. Тогда, загрузившись с другого носителя, ваш диск будет подключен в качестве второго (третьего и т. д.) диска, ОС на котором будет не запущена. Теперь остается только найти нужный файл и удалить его.
Использование сторонних программ
Для того чтобы решить все проблемы с доступом к файлам и иметь возможность их удалить вне зависимости от того, используются они или нет, существует ряд утилит, как раз и предназначенных для разблокировки подлежащих уничтожению объектов.
FileASSASSIN
Бесплатная утилита, скачать которую можно по ссылке. Среди достоинств программы – простой интерфейс, возможность запуска из командной строки, разблокировка и (если указан такой режим) удаление файла.
Чтобы избавиться от ненужного файла, надо указать путь к нему, отметить галочкой пункт «Delete file» и нажать кнопку «Execute». Это все, что необходимо сделать. Если работать с командной строкой вы не хотите, а также не хотите копаться в процессах и запущенных программах, то данный способ – возможность быстро и эффективно решить все проблемы с заблокированными файлами.
Unlocker
Пожалуй, известнейшая программа, известная давно и используемая часто. Найти ее можно по этой ссылке, где есть нужные версии под 32-х и 64-х разрядные ОС. Есть и портативная версия для тех, кто не любит устанавливать много программ в систему, а предпочитает запускать нужные средства для обслуживания системы автономно.
В использовании портативных версий есть еще одно преимущество: при инсталляции подобных программ часто «паровозом» инсталлируются еще несколько утилит, расширений к браузерам и т. п., которые вам совсем не нужны, которые буду досаждать рекламой, и от которых, порой, не совсем просто избавиться. Приходится быть внимательным при установке подобного софта. Как правило, с портативными версиями такого не происходит.
Сама программа предельно проста. При запуске откроется окно, где необходимо указать расположение файла, который необходимо удалить.
Надо только нажать кнопку «Ок», после чего появится новое окно, в котором нужно будет подтвердить действие, которое надо выполнить над файлом. Если никаких блокировок файла не найдено, то появится окно:
Надо указать, что делать с файлом – удалить, оставить как есть, перенести и т. п.
Другие программы
Помимо перечисленных есть и другие утилиты, выполняющие ту же работу. Как пример, можно привести: Delete Doctor, Free File Unlocker, MoveOnBoot, Tizer UnLocker, Wize Force Deleter. Принцип действия у них схож, поэтому, выбирать можно ту, которая понравилась и которая помогла решить проблемы с неудаляемыми файлами или папками.
Заключение
Чем удалить файлы или папки, какой способ выбрать – все зависит от конкретной ситуации. Кто-то предпочитает использовать специализированный «софт», кто-то не любит захламлять систему множеством узкоспециальных утилит и предпочитает использовать все встроенные возможности ОС.
Главное – иметь представление о разных способах решения проблем и умение их применять на практике. Надеемся, что как минимум один из предложенных нами способов вам помог.
Курс предназначен для базовой подготовки администраторов сайтов, созданных на "1С-Битрикс: Управление сайтом". Изучив курс, вы освоите основные методы администрирования системы, а также пополните знания по темам, изученным в курсе Контент-менеджер.
Если вы добросовестно изучите курс, то научитесь:
- управлять доступом к системе, сайтами, пользователями, группами пользователей;
- работать с инструментами системы;
- использовать возможности интерфейса по управлению системой;
- работать с модулями "1С-Битрикс: Управление сайтом", связанными с оптимизацией и безопасностью работы сайта;
- выполнять работу по конфигурированию веб-системы для оптимальной работы.
Если вам предстоит самостоятельная установка системы или перенос сайта на хостинг, то без курса Установка и настройка Курс Установка и настройка предназначен для специалистов устанавливающих "1С-Битрикс: Управление сайтом" или "Битрикс24 в коробке".
Начальные требования
Необходимый минимум знаний для изучения курса:
- базовые навыки компьютерной грамотности и навыки работы с ОС Windows;
- базовые знания о WWW и организации доступа к веб-серверу;
- знание системы в рамках курса Контент-менеджер Мы считаем, что вы этот курс уже прошли и знаете многое о Битриксе. Поэтому подсказок во всплывающих окнах будет намного меньше, чем в курсе Контент-менеджер. , чтобы банально не путаться в интерфейсе.
Неплохо было бы иметь базовые навыки установки и администрирования *nix-систем.
У нас часто спрашивают, сколько нужно заплатить
Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов - ничего из этого оплачивать не нужно.
Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Баллы опыта
В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:
уроке.
Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат - это если общее число набранных Вами баллов отличается от максимального на 1-2%.
Тесты и сертификат
После изучения курса пройдите тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение вы увидите результат обучения и там же - ваш сертификат в формате PDF.
Иконка успешно сданного вами курса отображается в вашем профиле на Freelance, если вы укажите ссылку на ваш профиль на сайте компании 1С-Битрикс.
Комментарии к урокам
Для преподавания офлайн
Если данный курс берётся в качестве основы для офлайнового преподавания, то рекомендуемая продолжительность: 3 дня (24 академических часа).
Если нет интернета
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла - от 11.04.2022.
Как проходить учебный курс?
Скрипт для очистки каталога upload/iblock сайта на CMS 1С-Битрикс от неиспользуемых файлов (оставшихся после удаления элемента инфоблока).
Скрипт для очистки каталога upload/iblock от неиспользуемых файлов, которые могут оставаться после удаления элемента инфоблока и, особенно, многократных обменов с 1С.
Скрипт проверяет каждый файл в каталоге upload/iblock , есть ли он в таблице b_file и если его там нет выводит полный путь к нему на экран.
--move-file=/путь : перемещает файл в указанную директорию с сохранением иерархии.
--delete-files : удаляет файл и каталог, в котором находился удаляемый файл (если он пуст).
В настоящий момент реализован простейший алгоритм, который перед сканированием каталога upload/iblock загружает все имена файлов из таблицы b_file в оперативную память, поэтому надо иметь в виду, что в случае нехватки памяти скрипт будет падать.
Важное замечание про short_open_tag PHP
При использовании более-менее современных версий PHP (точно для версий 7+) при запуске скрипта из консоли вы вместо результата можете увидеть какой-то исходный код, завершающийся ошибкой
В этом случае вам необходимо в конфигурации PHP (обычно php.ini ), предназначенную для запуска PHP в консоли, включить опцию short_open_tag = On , т.к. в ядре Битрикса еще очень много кода, используюшего именно сокращенный вариант тэга, обозначающего начало php-кода.
Путь к php.ini на сервере вы можете узнать, выполнив в консоли команду:
Изменять лучше не сам php.ini, а добавить в каталог (путь пишу для моего примера) /etc/php/7.3/cli/conf.d файл с именем 99-bitrix.ini и добавить в него следующее содержимое:
После этого скрипт заработает и у вас :-)
Получить список всех неиспользуемых файлов из каталога upload/iblock:
Переместить все неиспользуемые файлы из каталога upload/iblock в папку /backup:
Удалить все неиспользуемые файлы из каталога upload/iblock:
About
Скрипт для очистки каталога upload/iblock сайта на CMS 1С-Битрикс от неиспользуемых файлов (оставшихся после удаления элемента инфоблока).
Функционал, отвечающий за отправку файлов на сервер, реализуется довольно просто. Как и в примерах из предыдущих уроков, за это отвечает специальное поле формы. Но ее настройка имеет некоторые особенности.
Если ваша форма содержит поля, отвечающие за загрузку файлов, то элементу
необходимо явным образом установить атрибут enctype в значение multipart/form-data , а method задать как POST .
Заметка
Приведенные выше значения атрибутов не связанны непосредственно с HTML. Они оптимизируют внутренние процессы браузера. Если вы правильным образом настроите элемент , отправка больших файлов будет произведена гораздо быстрее, а серверная программа сможет легко принять и обработать их.
Использование поля загрузки файлов
В HTML для отправки файлов из формы используется многозадачный элемент . Его атрибут type должен иметь значение file . Браузер отобразит такое поле в виде кнопки с текстом «выберите файл» или аналогичным.
При нажатии кнопки откроется проводник файловой системы. В нем можно перемещаться по директориям компьютера. Интерфейс интуитивно понятен любому пользователю. Все что нужно сделать — это найти нужный файл и нажать кнопку «Открыть». Отметим, что выбирать нужные документы и файлы может только сам пользователь. Явное указание атрибута value с именем или расположением какого-либо файла не приведет к успеху.
Чтобы выбранный файл был загружен при отправке формы, полю необходимо добавить атрибут name с уникальным значением.
Множественный выбор и блокировка поля
По умолчанию пользователь может выбрать только один файл, предназначенный к отправке. HTML позволяет изменить это поведение. Множественный выбор станет доступным после добавления к полю атрибута multiple .
Также нужно отметить, что поле загрузки файлов можно заблокировать с помощью атрибута disabled . Это сделает невозможным какое-либо взаимодействие с ним. Если оно заблокировано после осуществления выбора файла, он не будет отправлен вместе с остальными данными формы. Такая ситуация может возникнуть при использовании встроенного в браузер языка программирования JavaScript.
Принципы загрузки файлов
Любой загружаемый файл будет помещен в специальную директорию для временного хранения, а связанная с ним информация добавлена в суперглобальный массив $_FILES . Если не переместить файл в другое место, после завершения скрипта произойдет его бесследное удаление. Директория временного хранения определяется настройкой upload_tmp_dir конфигурационного файла php.ini .
Суперглобальный массив $_FILES
Если вместе с текущим запросом были загружены файлы, PHP-интерпретатор автоматически заполнит суперглобальный массив $_FILES соответствующей информацией. Его структура довольно проста. Элементы массива соответствуют именам параметров HTTP-запроса. Например, ваша веб-форма содержит поле загрузки файла с атрибутом « name="upload-file" ». В таком случае информация будет добавлена в $_FILES['upload-file'] .
Содержимое массива $_FILES:
Заметка
Существует одно требование к HTML-разметке полей, осуществляющих множественный выбор и загрузку файлов. Их атрибут name должен быть составлен следующим образом « name ». Если вы опустите конструкцию [] , PHP обработает только один файл.
Перемещение загруженного файла
Как говорилось выше, загружаемые файлы размещаются во временной директории сервера и автоматически удаляются PHP-интерпретатором после выполнения текущего запроса. Их можно сохранить, переместив в другое место. Использовать стандартные функции copy() или rename() крайне нежелательно.
Для перемещения загруженных файлов существует специальная функция move_uploaded_file() . Она принимает два обязательных строковых параметра. Первый указывает имя файла во временной директории, а второй - путь назначения. Функция возвращает true в случае успеха и false , если произошла ошибка.
С помощью функции is_uploaded_file() вы можете проверить, является ли файл загруженным в текущем запросе. Она принимает всего один параметр — имя файла, а возвращает результат логического типа.
Важно
PHP позволяет изменять местоположение загруженных файлов с помощью обычных функций копирования или перемещения. Однако это довольно опасно. Существует ряд ухищрённых атак, основанных на таком недальновидном подходе.
Для перемещения и проверки существования загруженных файлов всегда используйте функции move_uploaded_file() и is_uploaded_file() . В процессе выполнения они осуществляют расширенные проверки и автоматически отсеивают ряд распространенных атак.
Пример загрузки файла на сервер
Ниже приводится пример PHP-скрипта. Если он вызывается в первый раз, либо в текущем запросе отсутствует загрузка файла, пользователю выводится форма. При загрузке, файл перемещается в корневую директорию сайта, а пользователю показывается информация, связанная с ним. Обрабатываются только изображения в форматах jpg , jpeg и png .
13 Фев, 2013 Комментариев 79
Здравствуйте, друзья! Как известно не все что хранится в папках нашего сайта на хостинге действительно необходимо. За время существования сайта в его “закромах” скапливаются горы мусора, то есть множество ненужных для нормальной работы веб-ресурса файлов. Это может быть все что угодно — временные или неиспользуемые файлы, копии документов или забытые архивы.
То, что надо периодически оптимизировать базы данных или удалять ревизии постов и спам всем хорошо известно. Для тех, кто не хочет делать это вручную, даже придуманы удобные плагины для WordPress. Например, WP-Cleanup. Но все равно такая уборка не позволяет заглянуть во все углы и папки, хранящиеся на хостинге, и увидеть весь мусор. Лично я, в процессе экскурсии на хостинг по FTP, обнаружил на одном из сайтов два десятка, давно не используемых, zip архивов. Конечно, я их удалил, но подумал, вдруг у кого-то такая же история, поэтому решил написать эту небольшую статью.
Где прятались забытые архивы
Без лишних слов сразу покажу, что и где я нашел. Надо сказать, что этот мой блог на движке WordPress я редко посещаю, и за прошлый год опубликовал на нем всего лишь три статьи. Думаю, не стоит говорить, что его файлы на хостинге я проверяю еще реже. Тем не менее, в папке Uploads , рядом с папками, загруженных и отсортированных по месяцам, картинок, я обнаружил 19 zip архивов шаблонов и плагинов. Их я устанавливал когда-то в процессе всевозможных экспериментов по развитию этого блога. Причем большинство из этих плагинов и тем давно не используются и удалены. Полный путь к ним выглядел так: /public_html/wp-content/uploads .
Проверьте, может и у вас есть подобные лишние файлы. Кстати, интересно это узнать, так как на других своих сайтах я ничего лишнего не нашел. Хотя я примерно догадываюсь почему, но об этом позже. А пока соединяемся с хостингом по FTP с помощью программы FileZilla и идем по указанному выше пути.
Конечно, много места эти архивы не занимают, всего лишь около 9 МБ. Но ведь, если активно развивать сайт в течение нескольких лет, то размер этой папки может быть гораздо больше. По любому, зачем нам мусор? Удаляем без тени сомнения и, таким образом, освобождаем место на хостинге. Кто не рискует, может сделать копии. У меня на работе блога это, естественно, никак не отразилось.
Теперь все выглядит аккуратненько, как и должно быть.
Освобождаем место в папке Uploads — удаляем лишние картинки
Кстати, как вы знаете, в той же папке Uploads на совершенно законных основаниях хранятся файлы изображений. Так вот, там тоже много мусора. Дело в том, что Вордпресс автоматически добавляет к вставляемым в посты картинкам 2-3 копии разных размеров. Поэтому неиспользуемые файлы можно удалить и, тем самым, значительно освободить дисковое пространство хостинга. Речь идет уже не о 9 МБ, а о сотнях и даже больше. Поверьте, лишние изображения занимают очень много места, особенно, если картинок большое количество. Вот, как это выглядит у меня на примере одного изображения.
Как видите, нужная картинка весит 28 КБ, а две ее копии, которые совершенно ни к чему, занимают еще 31 КБ места на хостинге, то есть размер увеличивается в 2 раза. Поэтому, когда вес папки с блогом станет критическим, вспомните, что его можно значительно снизить простым удалением копий файлов изображений. Только смотрите внимательно, иногда разные размеры бывают нужны. Например, для миниатюр.
Можно для удаления лишних картинок использовать специальный плагин DNUI Delete not used image .
Откуда взялись ненужные файлы?
Честно говоря, меня не особо волнует этот вопрос, но некоторые мысли есть. Скорее всего, эти архивы попадают в папку Uploads при установке тем и плагинов Вордпресс напрямую из админпанели. Раньше я пользовался именно этим способом. Архив загружается на хостинг, его файлы распаковывается в нужную папку, а он сам так и остается в папке загрузки.
Хотя сейчас попробовал для интереса установить пару плагинов через админку WordPress — ничего нового не появилось. К слову, мусорных файлов было не так много, так как за все время я устанавливал намного больше плагинов. Может не все из них оставляют после себя копии архивов? В любом случае, сейчас я загружаю файлы на хостинг через FTP соединение и ничего подобного не замечаю.
Какие у кого мысли на этот счет? Интересно, нашел еще кто-то в этой папке что-то не нужное? Поделитесь результатами своей проверки в комментариях.
Читайте также: