Скрипт распаковки загруженных на сервер файлов
Данный скрипт позволяет распаковать загруженный на сервер архив в заданную папку.
Код функции распаковки:
/**
* Распаковка архива
*
* @param string $source - Путь к файлу архива
* @param string $dest - куда извлекать
*
* @return bool
*/
function ar_unpack( $source, $dest )
{
$zip = new ZipArchive;
$is = $zip -> open( $source );
if( $is ) {
$zip -> extractTo( $dest );
$zip -> close();
} else {
return false;
}
return true;
}
Код скрипта:
if(isset($_POST['load']))
{
// файл архива, загруженный на сервер
$archive = $_FILES['archive'];
// путь куда будет сохраняться архива
$dest = getcwd() . '/' . $archive['name'];
// пытаемся переместить загруженный архив из временной папки в нужную
if (!move_uploaded_file($archive['tmp_name'], $dest)) {
print "Невозможно загрузить {$archive['name']} ";
}
else {
print "Временная папка {$archive['tmp_name']}</br>";
print "Файл <b>{$archive['name']}</b> успешно загружен: <b>{$dest}</b><br/>";
// даем имя папке, в которую будем извлекать файлы
$dir = substr( $archive['name'], 0, strrpos( $archive['name'], '.' ) );
// распаковываем архив и даем ссылку на файл index.php
// для доступа к распакованному содержимому
if( ar_unpack( $dest, $dir ) ) {
print "
Архив <b>{$dest}</b> успешно распакован в папку <b>{$dir}</b><br/>
<a href = '{$dir}/index.php'>{$dir}</a>
";
}
}
}
Код формы:
<p>
<h3>Загрузка архива</h3>
</p>
<p>
<form action = "" method = "post" enctype = "multipart/form-data">
<p>
<input type = "file" name = "archive" />
</p>
<p>
<input type = "submit" name = "load" value = "Загрузить" />
</p>
</form>
</p>
Таким образом, с помощью данного скрипта можно распаковать архив на сервере в PHP.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.