Como Forçar downloads de arquivos
Parte de meu tempo, por esses dias, tem sido em tentar colocar um blog de papéis de parede na internet. Mas havia um problema: Gostaria que, ao clicar no link da imagem, os browsers não abrissem uma nova janela, mas sim, fizesse automaticamente o download da imagem em questão.
Este é um problema comum, sobretudo para imagem, mas que não deixa de ser para arquivos do word ou PDFs também. Assim sendo, passei um bom tempo procurando uma solução para o problema. A primeira delas, plugins para WordPress. Achei três soluções possíveis, nenhuma delas me deixou satisfeito:
- Um Plugin chamado iMP download, citado no Weblogs Tools Collection – infelizmente, a página oficial está desativada por falta de pagamento!,
- O Plugin Drain Hole, que não consegui configurar;
- E o Download Manager, que parece não forçar o download, mas é bem interessante – como todo plugin por LesterChan.
O Plano B era procurar forçar download de arquivo por PHP ou Javascript. Outra vez sem sucesso. Nenhum dos códigos encontrados foi útil.
Enfim, somente encontrei uma solução satisfatória, depois de muito procurar via .htaccess. Na verdade, uma solução satisfatória e muito simples. Com um simples upload do arquivo .htaccess no diretório que contém as imagens (ou os arquivos) resolve o problema. Abaixo, o código:
Forçar download de arquivos – .htaccess
<IfModule mod_headers.c>
<FilesMatch “\.(jpg|jpeg|bmp|png)$”>
ForceType image/jpeg
Header set Content-Disposition attachment
</FilesMatch>
</IfModule>
Note que existe quatro extensões no código: jpg, jpeg, bmp e png. Estes são os principais tipos de arquivos que trabalharei, mas se você quiser forçar o downlaod de pdf, doc, ppt, pps, por exemplo, basta substituir ou inserir mais estas extensões de arquivos.