Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cláudia Satie

Script PHP que não descompacta arquivo .zip

Recommended Posts

Olá,

 

Já postei algo em outro post, mas como não consegui solução resolvi criar um post novo. Bom, tenho um script em PHP e ele funciona para descompactar arquivos .zip, testei com alguns e ele funciona, mas ele não descompacta um que baixo do site de curriulos Lattes. Será que alguém tem alguma idéia do que pode ser? Será que, sei lá, se ele for compactado por um script em java, por exemplo, o script em PHP não o descompacta? Ou existe algum código que é adicionado ao arquivo zip e este codigo precisa ser tratado? Não tenho idéia do que é direito, aguardo ajuda!

Ah, o código que estou usando é esse:

$zip = new ZipArchive;
if ($zip->open($nome_file) === TRUE) {
	$zip->extractTo("./upload");
	$zip->close();
	echo "ok";
} else {
	echo "failed";
}

Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algumas confirmaçoes:

 

Exibe alguma mensagem de erro? Coloque error_reporting(E_ALL); no inicio do script

 

você definiu a variavel $nome_file com o nome do arquivo zipado?

 

Existe a pasta 'upload' no diretorio atual do script e esta com permissao de escrita?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não aparece erro algum e é exibido o "Ok" na tela. O script funciona, pelo menos quando eu descompacto o arquivo com Winrar, por exemplo, e compacto novamente para zip, o script descompacta o arquivo e ele e seu conteudo aparecem dentro da past Upload. O script só não descompacta o arquivo que foi diretamente baixado do site do Lattes. Por isso, gostaria de saber se existe alguma forma de bloquear essa descompactação.

 

Grata.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu codigo exibe OK quando o arquivo zip é aberto, nao quando é extraido. Ja tive um problema como o seu, em que quando eu zipava o arquivo por um certo aplicativo, a lib que eu usava para unzipar arquivos php nao conseguia extrair ele, ja quando eu zipava por outro aplicativo que usava ziplevel 6 o meu script extraia ele beleza... Vou dar uma pesquisada sobre isto e tambem sobre a classe que esta usando e se encontrar alguma coisa eu posto aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tbm tentei usar esse script, mas não funcionou! http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

$zip = zip_open($nome_file);
if($zip){
	while ($zip_entry = zip_read($zip))	{
	zip_entry_open($zip, $zip_entry);
	if (substr(zip_entry_name($zip_entry), -1) == '/') {
		$zdir = substr(zip_entry_name($zip_entry), 0, -1);
		if (file_exists($zdir)) {
			trigger_error('Directory "<b>' . $zdir . '</b>" exists', E_USER_ERROR);
			return false;
		}
		mkdir($zdir);
	}
	else {
			$name = zip_entry_name($zip_entry);
			chdir('upload');
			if (file_exists($name)) {
				trigger_error('File "<b>' . $name . '</b>" exists', E_USER_ERROR);
				return false;
			}
			$fopen = fopen($name, "w");
			fwrite($fopen, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)), zip_entry_filesize($zip_entry));
		}
		zip_entry_close($zip_entry);
	}
	zip_close($zip);
	return true;	
}
else{
	echo "Falha ao abrir";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.