Cabeçalho PHP xlsx
então isso funciona:
myphpfile.php:
<code><?php header('Content-disposition: attachment; filename=myfile.pdf'); header('Content-type: application/pdf'); readfile('myfile.pdf'); ?> </code>
esse arquivo php é chamado aqui e o download do PDF funciona bem:
<code><a class = "oglasavanje" href = "../../cjenik/myphpfile.php">download</a><br/> </code>
mas isso não funciona:
<code><?php header('Content-disposition: attachment; filename=myfile.xlsx'); header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); readfile('myfile.xlsx'); ?> </code>
Os arquivos .pdf e .xlsx estão na mesma pasta. Quando clico no link 'download', as janelas de download aparecem, salvo o arquivo, mas o arquivo não pode ser aberto. Isso me dá o seguinte erro:
O Excel não pode abrir o arquivo 'myfile.xlsx' porque o formato do arquivo ou a extensão do arquivo não é válido. Verifique se o arquivo não foi corrompido e se a extensão do arquivo corresponde ao formato do arquivo.
O arquivo abre bem quando eu abri-lo manualmente (ou seja, sem baixá-lo através do link)
Estou usando o WAMP, se isso é importante.
Qualquer ajuda é apreciada.
--- EDIT ---
Eu encontrei este pedaço de código no php.net:
<code>ob_clean(); flush(); </code>
então o código final se parece com isso e funciona:
<code>$file = "myfile.xlsx"; header('Content-disposition: attachment; filename='.$file); header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Length: ' . filesize($file)); header('Content-Transfer-Encoding: binary'); header('Cache-Control: must-revalidate'); header('Pragma: public'); ob_clean(); flush(); readfile($file); </code>
Obrigado a todos pelas respostas.