Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17662
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como zipar vários arquivos e forçar o download dos mesmos PHP

26-05-2015 18:49

Nesse post vou mostrar como fazer pegar alguns arquivos de uma pasta, zipar esses arquivos, e forçar o download dos mesmos zipados para o usuário.

Para funcionar você precisa pegar qualquer arquivo zipado .zip, em seu computador por exemplo, abre o arquivo zipado e apaga todos os arquivos dentro dele. Depois, renomeia esse arquivo zipado para o nome que desejar.

Agora você precisa criar 2 arquivos:

compactar.php

<?php $zip = new ZipArchive; $arquivo = "seu_arquivo_zipado.zip"; if($zip->open($arquivo) === TRUE) { $zip->addFile("arquivo1.php", "arquivo2.php"); $zip->close(); } else { echo "erro"; } header("Location:baixar.php"); ?>

No arquivo acima as linhas importantes são:

$arquivo = "seu_arquivo_zipado.zip"; // NOME DO ARQUIVO ZIP QUE VOCÊ ESVAZIOU $zip->addFile("arquivo1.php", "arquivo2.php"); // ARQUIVOS A SEREM COMPACTADOS SEPARADOS POR VÍRGULA header("Location:baixar.php"); // ARQUIVO QUE VAI FORÇAR O DOWNLOAD

Agora o conteúdo do arquivo baixar.php

<?php $dir = ""; $arquivo = "seu_arquivo_zipado.zip"; $var = "application/force-download"; if(file_exists($dir.$arquivo)){ header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); header("Content-Type: $var"); header("Content-Disposition: attachment; filename=\"".basename($dir.$arquivo)."\";" ); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($dir.$arquivo)); readfile($dir.$arquivo); } else { } ?>

As linhas alteráveis desse arquivo são:

$dir = ""; // DIRETÓRIO ONDE ESTÁ O ARQUIVO A SER BAIXADO $arquivo = "seu_arquivo_zipado.zip"; // NOME DO ARQUIVO ZIP, O MESMO DEFINIDO NO compactar.php

2
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado