Nesse post vou mostrar como faço para tratar arquivos ZIP vindo de um formulário.
Primeiramente, precisamos ter instalado a biblioteca zip. Para isso, podemos utilizar o comando abaixo:
$ pecl install zip
Suponhamos um formulário simples:
<?php echo form_tag("upload/do" , "method=post multipart=true") ?>
<?php echo input_file_tag("anexos") ?>
</form>
Na action que irá tratar o formulário:
$phpFile = sfContext::getInstance()->getRequest()->getFile(‘anexos’);
$zip = new ZipArchive();
$res = $zip->open($phpFile["tmp_name"]);
if ($res === TRUE) {
$zip->extractTo(sfConfig::get(‘sf_upload_dir’).‘/imagens/’); // web/uploads/imagens
$zip->close();
} else {
// logar o erro onde preferir..
// echo ‘failed, code:’ . $res;
}
Neste exemplo não estou considerando validação do tipo de arquivo, etc..
É obrigatório ter no formulário multipart=true senão não irá funcionar.
Valeeeeu! =)

Post a Comment