@9StarRu

Как разархивировать .zip архив в созданную папку на сервере?

Есть код, который создает папку и файл в ней после получения post данных:

//определяю ID и User ID из POST данных
$ID = $_POST['id'];
$User_ID = $_POST['username'];

//Создаю дирректорию сайта - папку
$dir = mkdir("/var/www/site/data/www/subdomains.site.org/domains/$ID", 0755);

//Создаю файл в папке
$file = "/var/www/site/data/www/subdomains.site.org/domains/$ID/index.php";
// Открываем файл для получения существующего содержимого
$current = file_get_contents($file);
// Добавляем новую запись в файл
$current = "<?php echo $ID; ?>";
// Пишем содержимое обратно в файл
file_put_contents($file, $current);


header('Location: /$ID');


Безопасно, так, чтобы пользователь не мог получить ftp и/или другие данные, можно вместо файла в папке, разархивировать в эту папку .zip архив, чтобы при переходе в данную папку, срабатывал скрипт cms которая изначально находилась в архиве?
Если это можно реализовать, то как?
Что будет, если пользователь перейдет по адресу папки, а архив еще не успеет разархивироваться?
Как лучше реализовать подобную задачу?

Спасибо!
  • Вопрос задан
  • 233 просмотра
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
Создать временную папку и распаковать туда, а потом эту папку переименовать.
Если в пределах одного диска, то операция перемещения директории поидее атомарна и оказаться в полураспакованном состоянии не сможет (в полураспакованном будет только во временной папке)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект