rexmage Posted March 12, 2014 at 02:25 AM Report #548327 Posted March 12, 2014 at 02:25 AM Boas pessoal, preciso fazer o download forçado, quando um cliente seleciona uma opção na plataforma. O problema é que sempre que insiro isto: header('Content-type: text/xml'); header('Content-Disposition: attachment; filename="Nome_ficheir_exportado.xml"'); readfile('CAMINHO_DO_FICHEIRO'); Ele abre-me um separador, e lê-me o ficheiro: file:///C:/Users/broken/Downloads/Nome_ficheir_exportado.xml Antes disto eu obrigo-o a gerar o ficheiro XML com file_put_contents. Tudo funciona na perfeição, e o ficheiro é correctamente gerado. No entanto quando insiro estas linhas, ele além de fazer o download, abre o separador e lê o ficheiro XML. Mas se for PDF, por exemplo, isto já não acontece... Penso que o meu problema é semelhante a este: http://stackoverflow.com/questions/20528874/php-script-to-force-download-of-xml-file Ainda usei uma função completa: http://forums.phpfreaks.com/topic/87425-solved-force-download-excel-xml/ Mas o ob_clean_all(); estava a limpar tudo e nao me parece que funcione mt bem. Ou então fui eu que não percebi como usar... lol Alguém pode dar uma ajuda sobre este tema ? Obrigado! <?PHP echo "Bo0m"; ?>
HappyHippyHippo Posted March 12, 2014 at 02:36 AM Report #548328 Posted March 12, 2014 at 02:36 AM porque razão estás a criar o ficheiro se podes fazer output deste directamente ? $xml = "<...>"; header('Content-type: text/xml'); header('Content-Disposition: attachment; filename="Nome_ficheir_exportado.xml"'); echo $xml; IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
rexmage Posted March 12, 2014 at 09:56 AM Author Report #548341 Posted March 12, 2014 at 09:56 AM LOL, continua a acontecer o mesmo. Esqueci-me de acrescentar que dentro do documento, ele quando o lê diz: This page contains the following errors:error on line 4 at column 1: Extra content at the end of the document Below is a rendering of the page up to the first error. <?PHP echo "Bo0m"; ?>
HappyHippyHippo Posted March 12, 2014 at 10:34 AM Report #548360 Posted March 12, 2014 at 10:34 AM url onde se pode ser essa info ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
rexmage Posted March 12, 2014 at 11:18 AM Author Report #548370 Posted March 12, 2014 at 11:18 AM PHP FILE : http://malabadagun.com/_teste_folder/teste.php <?php $XML = file_get_contents('teste_download_original.xml'); file_put_contents('teste_download_modificado.xml', $XML); header('Content-type: text/xml'); header('Content-Disposition: attachment; filename="teste_download_modificado.xml"'); XML ORIGINAL : http://malabadagun.com/_teste_folder/teste_download_original.xml O objectivo é ele ler o ficheiro original, gravar o modificado e "disparar" para o cliente o modificado. Isto porque quero manter o original que terá formulas que são substituidas por dados da BD. Tudo funciona, até ele forçar o download para o cliente... Alguma dica extra ? <?PHP echo "Bo0m"; ?>
HappyHippyHippo Posted March 12, 2014 at 11:25 AM Report #548371 Posted March 12, 2014 at 11:25 AM como disse : <?php $XML = file_get_contents('teste_download_original.xml'); // do stuff to $XML header('Content-type: text/xml'); header('Content-Disposition: attachment; filename="teste_download_modificado.xml"'); echo $XML IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
rexmage Posted March 12, 2014 at 11:30 AM Author Report #548372 Posted March 12, 2014 at 11:30 AM Okay, o meu problema é: http://malabadagun.com/_teste_folder/asdsd.png Mas, testei com o firefox, e ele fez o download do documento........ ou seja penso que o problema pode ser do chrome... -.- ' há alguma forma de uniformizar esta situação? <?PHP echo "Bo0m"; ?>
HappyHippyHippo Posted March 12, 2014 at 11:39 AM Report #548375 Posted March 12, 2014 at 11:39 AM por acaso não estas a fazer mais coisas depois desse código pois não ? é que parece que anda p'rai HTML depois do conteúdo do ficheiro ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
rexmage Posted March 12, 2014 at 11:58 AM Author Report #548381 Posted March 12, 2014 at 11:58 AM hmm okay, estupides minha... Tnks hippo... mas de qualquer forma, ainda nao ta a fazer o "forcing" no chrome... mas ja nao da erro... -.-' faltava um die ... lol <?PHP echo "Bo0m"; ?>
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now