As instruções no documento de ajuda do PHP sobre o PHP acionando downloads por meio de cabeçalhos são relativamente simples, e há poucos artigos sobre esse aspecto na Internet, e muitos artigos não conseguem atingir o efeito desejado. Hoje falarei também sobre esse assunto. Se você acha que está melhorado em relação a alguns artigos da Internet, ficarei muito satisfeito.
Do ponto de vista preciso, o documento PHP é o mais preciso, pois lista sucintamente as três instruções necessárias para acionar o download de arquivos de texto, tomando o PDF como exemplo:
A seguir está o conteúdo citado:
// Estaremos gerando um
cabeçalho PDF('Content-type: application/pdf');
// Ele será chamado de baixado.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// A fonte do PDF está em original.pdf
readfile('original.pdf');
Essas três frases estão corretas, mas alguns problemas imprevistos podem ocorrer facilmente durante o uso real. Se você for uma pessoa muito cuidadosa, poderá facilmente evitar esses problemas. Mas não estou, então encontrei esse problema. Aqui falarei brevemente sobre o meu problema.
Para a primeira frase, não deve haver nada a dizer. É necessário apenas alterar o tipo do documento. Por exemplo, se você estiver baixando um arquivo txt, altere-o para header('Content-type: application/txt'. );. A segunda frase Não há nada a dizer, apenas dê um nome ao documento baixado. Se for um arquivo txt, você pode alterá-lo para header('Content-Disposition: attachment; filename="downloaded.txt"') ;, a pergunta da terceira frase Há mais. A função readfile significa ler um arquivo e exibi-lo. O caminho do arquivo aqui precisa ser o caminho real do arquivo. pode escrever readfile('downloads/ original.txt'); e se a página enviada gerar texto e outros caracteres, o arquivo baixado será um arquivo misto do arquivo original original.txt e o texto gerado pela página enviada. Faltou uma observação cuidadosa aqui. Assim que vi que algo estava errado, verifiquei imediatamente o código, mas não achei que o texto acima era o que eu precisava. Depois de descobrir esta parte do conteúdo, você pode pensar rapidamente em como resolver. esse problema, ou seja, desligar a saída do conteúdo de texto da página enviada. Neste ponto, o problema está resolvido e a caixa de diálogo de download é acionada quando o link do arquivo de texto é clicado.