Zip и скачать файлы из каталога и удалить .zip файл после загрузки

0

Я пытаюсь zip и загружать файлы из каталога с помощью PHP, и я использовал предложение "skrilled" из следующего URL:

ZIP все файлы в каталоге и загрузка.zip сгенерирована

Код работает отлично для меня, но мне нужно добавить в код следующие функции:

  1. Я хочу добавить случайные символы в имя файла, как показано ниже:

$ zipname = 'adcs_RAN-CHARACTERS-HERE.zip';

  1. Я хочу удалить файл после загрузки файла пользователем.
Теги:
directory
zip
folder
ziparchive

1 ответ

0

Я хочу добавить случайные символы в имя файла, как показано ниже: $ zipname = 'adcs_RAN-CHARACTERS-HERE.zip';

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

$zipname = 'adcs_' . date('YmdHis') . '.zip';

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

header("Content-Disposition: attachment; filename='$zipname'");

Я хочу удалить файл после загрузки файла пользователем.

Это становится сложнее. Проблема в том, что вы не можете точно знать, когда пользователь закончил загрузку файла. Я бы использовал другой скрипт для периодической очистки файлов (например, запланированного как задание cron). Или каждый раз, когда вы собираетесь создать новый zip файл, вы можете сначала удалить все старые. Или просто используйте каталог temp/tmp в системе, который будет очищен всякий раз, когда это произойдет.

  • 0
    Спасибо за инструкцию, это сработало для меня. Теперь я думаю добавить несколько новых функций в файлы. 1. Как я могу отслеживать количество загрузок, используя файл .txt или базу данных MySQL? 2. Как отобразить количество скачиваний на странице?
  • 0
    Я бы использовал базу данных MySQL. Сохраните уникально идентифицируемое имя файла в виде поля в таблице. Всякий раз, когда пользователь хочет загрузить файл, проверьте, есть ли в файле запись в таблице, если это возможно, вы можете получить и отобразить текущий счетчик загрузок. Затем, когда они загружают файл, вы можете либо вставить новую запись для нового файла (начиная с числа 1), либо обновить существующую запись, увеличив число загрузок.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню