Descompactar zip com $_GET
Olá pessoal,
Estou passando um "mal-bocado", sou novato em php e tenho que descompactar arquivos zip, funciona assim:
página listar.php pega o conteúdo da pasta e gera uma listinha;
envio para página ftp.php o arquivo que deve ser descompactado;
segue as páginas:
LISTAR
<?php
// variável que define o diretório das imagens
$dir = "./zips";
// esse seria o "handler" do diretório
$abrir = opendir($dir);
// loop que busca todos os arquivos até que não encontre mais nada
while (false !== ($filename = readdir($abrir))) {
// verificando se o arquivo é .zip
if (substr($filename,-4) == ".zip") {
// verifica a data do arquivo
$data = date ("d/m/Y", filemtime('$filename'));
// mostra o nome do arquivo e um link para ele
echo "<a href=\"ftp.php?zip=$filename\">$filename</a><br>";
}
}
?>
FTP
<?php
function unzip($zip)
{
//pegando o caminho completo do arquivo zip
$caminho = dirname($zip);
//abrindo o arquivo zip
$zip = zip_open($zip);
//lendo todo o conteudo do arquivo zip
while(($elemento = zip_read($zip)) != false)
{
//pegando o nome do arquivo/diretorio em questao
$nome = zip_entry_name($elemento);
//descartando os diretorios "." e ".."
if($nome != '.' && $nome != '..')
{
//verificando o tamanho total do elemento
if(zip_entry_filesize($elemento))
{
//se possui tamanho, entao nao eh uma pasta, logo, devemos
//criar um arquivo com o mesmo nome
$arquivo = fopen($nome, 'wb');
//escrevendo todo o conteudo do elemento para o arquivo que
//acabamos de criar
fwrite($arquivo, zip_entry_read($elemento, zip_entry_filesize($elemento)));
//fechando o arquivo que criamos
fclose($arquivo);
//voltando para o while
continue;
}
}
}
return 0;
}
$zip = $_GET['zip'];
unzip(dirname(__FILE__) . './zips' . $zip);
?>
Creio que meu erro esteja na última linha, já que se eu adicionar o caminho na "mão" funciona :cry:
Discussão (2)
Carregando comentários...