Как удалить загруженный файл в WordPress

4 нояб. 2011 г., 04:31:16
Просмотры: 14.1K
Голосов: 3

У меня есть функция wp_handle_upload() для загрузки файлов.

$file = $_FILES['attachment_icon-' . $i];
$upload = wp_handle_upload($file, array('test_form' => false));

Какая функция используется для удаления загруженного файла?

0
Все ответы на вопрос 2
2

Используйте wp_delete_attachment( $post_id ), если ранее вы применяли функцию wp_insert_attachment().
$post_id — это ID вложения.

Если вы не использовали wp_insert_attachment(), достаточно простого …

unlink( $upload['file'] );

… удаления файла.

8 янв. 2012 г. 23:38:14
Комментарии

wp_delete_attachment не удаляет файл, если он не был добавлен через wp_handle_upload. Файл был добавлен с помощью wp_insert_attachment, но загружен заранее через file_put_contents (файл получен в base64). Стоит ли тогда просто использовать unlink? Но в этом случае связи в БД останутся для старых файлов?

trainoasis trainoasis
16 нояб. 2015 г. 10:38:38

В моем случае я проверяю, что файл действительно удален из файловой системы, но ссылка на файл остается в списке медиабиблиотеки. Пожалуйста, ознакомьтесь с этим вопросом по теме https://wordpress.stackexchange.com/questions/321595/why-after-a-file-is-programmatically-deleted-is-there-still-a-reference-in-the

user615274 user615274
11 дек. 2018 г. 01:27:01
1

специальной функции в WordPress нет, потому что уже есть встроенная PHP функция с таким синтаксисом:

    <?php
    $filename="MyFile.txt"
    unlink($filename);
    ?>

полную документацию смотрите в руководстве PHP:

http://php.net/manual/en/function.unlink.php

8 янв. 2012 г. 11:19:16
Комментарии

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

fuxia fuxia
8 янв. 2012 г. 23:33:45