mmb 0 Denunciar post Postado Agosto 29, 2008 Bom galera, to fazendo um repositório(pra quem conhece tipo o sourceforge, svn), estou com um problema na hora de fazer o download, ja procurei no php.net inclusive nos comentarios, aqui no fórum e até agora nao consegui. A maneira mais próxima que consegui foi aparecer a janelinha de download so que o arquivo vem corrompido. Alguem teria algum script funcional? Nunca pensei que esses headers iam da tanto trabalho :wacko: Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 29, 2008 mostre o headers que montou até o momento talvez esse topico recente ajude: http://forum.imasters.com.br/index.php...amp;hl=download Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Agosto 29, 2008 <?php $filename = "Gexion.zip"; $myFile = "C:\Users\Matheus\Desktop\Gexion.zip"; $size = filesize($myFile); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header("Content-Type: application/force-download"); header('Content-Disposition: attachment; filename='.basename($filename)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); header('Pragma: no-cache'); header('Content-Length: '.$size); header("Expires: 0"); readfile($myFile); ob_clean(); flush(); ?> Ta ae, eu ja tinho pego la da quele topico, mas o arquivo vem corrompido, ele tem 70 kb e na janelinha aparece apenas 40 bytes... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 30, 2008 teste assim: <?php $path = 'C:\Users\Matheus\Desktop\Gexion.zip'; $fileName = basename( $path ); header("Content-Type: application/force-download"); header("Content-type: application/octet-stream;"); header("Content-Length: " . filesize( $path ) ); header("Content-disposition: attachment; filename=" . $fileName ); header("Pragma: no-cache"); header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); header("Expires: 0"); readfile( $path ); flush(); ?> apenas uma pergunta.. o caminho "C:\Users\Matheus\Desktop\Gexion.zip" possui permissão para acesso pelo PHP ?? Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Agosto 30, 2008 Teoricamente sim, tanto que quando tiro os headers aparece as informações do arquivo(os códigos HEX)... Mas vou mudar pra pasta pasta htdocs pra ver se funciona.. Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Agosto 30, 2008 Bom desse seu código fica +/-, no ie fica assim: No firefox aparece certinho "Gexion.zip, 69.7 kb" porem ao salvar e abrir o arquivo: Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 30, 2008 tem algo errado no atributo filename está apacendo o nome do script php deveria aparecer o nome do arquivo zip bom.. faça um teste desabilite o "octet-stream" e o "Cache-Control" e use file_get_contents no lugar de readfile exemplo <?php $path = 'C:\Users\Matheus\Desktop\Gexion.zip'; header("Content-Type: application/force-download"); //header("Content-type: application/octet-stream;"); header("Content-Length: " . filesize( $path ) ); header("Content-disposition: attachment; filename=" . basename( $path ) ); header("Pragma: no-cache"); //header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); header("Expires: 0"); echo file_get_contents( $path ); flush(); ?> Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 30, 2008 apenas um detalhe quando fizer alterações no script nao utilize o refresh ( F5 ) do browser opte por clicar na barra de endereço e pressionar ENTER se fizer refresh pode ocorrer do dados aparecerem printados na tela como você comentou no post acima Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Agosto 30, 2008 Tirando o cache aparece o nome corretamente no IE, no Firefox tanto faz com ou sem que o nome aparece normalmente, o problema é que você salva o arquivo(ele vem com mesmo tamanho e etc) so que vem corrompido conforme imagem acima que mostrei ;x Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 31, 2008 como est[á o codigo que modificou ? qual o sistema operacional etá usando ? versao do apache e php ? Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Agosto 31, 2008 Fiz as mesmas alterações que o seu, Estou utilizando o Xampp 1.6.7 que portanto utiliza Apache HTTPD 2.2.9 e PHP 5.2.6 no Windows Vista Ultimate... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 31, 2008 nao sei o que você está fazendo o script que mostrei é foi testado nos sistemas operacionais - windows 9X, 2k, xp, vista - fedora, ubuntu, red hat browser: ie 5+ atual, ff1+, ne4+, opera6+ Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Agosto 31, 2008 Cara coloquei um .pdf e salvou e abriu aparentemente normal, um .doc o arquivo ficou em branco, um .txt ao invés de aparecer o texto, apareceu isso: "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran"... Não sei o que fazer :S E se eu der só um readfile no .txt aparece o conteudo dele... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 31, 2008 estranho.. uso esse mesmo script, faz dowload de binario, ascii, etc.. tente testar em outro pc Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Setembro 12, 2008 Após alguns testes acho que existe algum tipo de incompatibilidade com o windows vista, pois rodei em uma máquina virtual com Windows XP e esse script funcionou perfeitamente, rodei em um servidor de um cliente e também funcionou. Agora basta saber como sanar essa incompatibilidade, se o bug ja foi reportado... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 13, 2008 detalhe.. qual a versao do php, apache e SO do server ? como fez a instalação e configuração do php, apache ? Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Setembro 13, 2008 Então, no windows vista estava usando os pack que vem tudo pronto, primeiramente utilizei o XAMPP mas como não tava funcionando esse script fui utilizar o VERTRIGO e também deu problema. Instalei uma maquina virtual com windows xp e instalei o php/apache manualmente e o script funcionou. Instalei com os mesmos passos e etc no windows vista(tomando cuidado para setar as pastas no C: por causa do UAC) e o script não funciona. Na maquina virtual testei o XAMPP e o VERTRIGO e em todos os 2 o script funciona perfeitamente. Ja tentei desativar o UAC e também não tive sucesso, não sei o que fazer :S Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 13, 2008 era o que eu suspeitava... evite o uso dessas ferramentas pois prejudicam o aprendizado e dificultam a produção com assuntos aparentemente simples como esse.. Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Setembro 13, 2008 Sim, o problema é que mesmo instalando manualmente o php/apache no windows vista NÂO funciona, ja procurei na net e não achei ninguém com problema parecido, no xp utilizando pack's prontos ou instalando manualmente funciona perfeitamente... Compartilhar este post Link para o post Compartilhar em outros sites