Jump to content


LuizCPinheiro

Member Since 10/01/2012
Offline Last Active 10/01/2012, 10:09
-----

Topics I've Started

Problema Com Script Gerando Saído De Arquivo Zip

10/01/2012, 08:18

Olá pessoa, tudo bem?

O problema que estou passando é com um pouco do php e um pouco do apache, mas caso seja possível solucionar somente via php, vamos lá.
Estou gerando um arquivo zip (através de uma classe) que é salvo em uma variável e posteriormente é enviado para a saída do arquivo .php.
Não posso fazer o uso de um arquivo temporário (não é uma possibilidade). O Grande problema está em: quando o php gera esta saída, a conexão fica "amarrada" até
que o download se conclua. Ou seja, enquanto um usuário baixa 1 arquivo, ele além de não conseguir baixar outro, não consegue navegar no site. Parece uma tomada de decisão
meio óbvia pelo servidor, porém este script já rodava em um servidor de um cliente e funcionava normalmente. Já em meus dedicados isso não funciona não tem.

Código do script de download

<?
	/*
		...tratamento do arquivo e etc.
		$nameFile = nome do arquivo
		$data = dados do arquivo (byte à byte)
	*/

	// set headers
	header("Pragma: public");
	header("Expires: 0");
	header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
	header("Cache-Control: public");
	header("Content-Description: File Transfer");
	header("Content-Type: $mtype");
	header("Content-Disposition: attachment; filename=\"$nameFile\"");
	header("Content-Transfer-Encoding: binary");
	header("Content-Length: " . strlen($data));
	
	// download
	$file = tmpfile();
	fwrite($file,$data);
	fseek($file,0);
	echo fread($file, strlen($data));
	flush();
	fclose($file);
?>

Faço o uso do APACHE 2.2.3 rodando sobre o CentOS 5;

IPB Skin By Virteq