post
Código PHP para Fazer Backup e Download de Arquivos Pelo Navegador
Publicado em: 10/01/2024 / Atualizado em: 10/01/2024
<?php function zipData($source, $destination) { if (!extension_loaded('zip') || !file_exists($source)) { die('A extensão Zip não está habilitada ou o diretório não existe.'); } $zip = new ZipArchive(); if (!$zip->open($destination, ZipArchive::CREATE)) { die('Não foi possível criar o arquivo ZIP.'); } $source = realpath($source); if (is_dir($source)) { $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST); foreach ($files as $file) { $file = realpath($file); if (is_dir($file)) { $zip->addEmptyDir(str_replace($source . '/', '', $file . '/')); } elseif (is_file($file)) { $zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file)); } } } elseif (is_file($source)) { $zip->addFromString(basename($source), file_get_contents($source)); } $zip->close(); } // Obtém o diretório atual do script $source = __DIR__; $destination = 'backup.zip'; zipData($source, $destination); if (isset($_GET['save']) && $_GET['save'] === 'true') { // Executar o código que salva no servidor echo 'Compactação concluída. Arquivo ZIP salvo em: ' . $destination; } elseif (isset($_GET['download']) && $_GET['download'] === 'true') { // Executar o código que faz o download header('Content-Type: application/zip'); header('Content-disposition: attachment; filename=' . $destination); header('Content-Length: ' . filesize($destination)); readfile($destination); } else { // Caso nenhum parâmetro seja fornecido, exibir uma mensagem de erro echo 'Parâmetro inválido. Use "?save=true" apenas para salvar no servidor ou "?download=true" para salvar e fazer o download pelo navegador.'; } ?>
Publicações recomendadas:
Inscreva-se em Nossa News:
Seja notificando sempre que tiver conteúdo novo disponível no meu canal do Youtube ou artigo no meu Blog.
Link Curto para Compartilhamento
Compartilhe esse conteudo nas redes sociais ou por mensagem usando o link curto abaixo. Basta clicar em cima do link para copiar.
bruno.art.br/pb/4113
ID de Referência: 4113
Sugira uma publicação
Envie uma mensagem e sugira um publicação sobre um assunto que tenha dificuldades de resolver.