PplWare Mobile

PHP é à quinta-feira – Download de um ficheiro

                                    
                                

Este artigo tem mais de um ano


Autor: Pplware


  1. Rui says:

    Boa tarde,

    É sempre bom verificar opiniões e técnicas de programação. A este script adiciona-se a ligação a uma base de dados e incrementa-se o nº de downloads para sabermos que interesse existe por parte de alguém nos nossos documentos.

    Se precisarem de ajuda para umas “postadas” na rubrica PHP, avisem-me, ok?

  2. Pouic says:

    Obrigado pela dica, dá sempre jeito 😀

  3. Miguel Guerra says:

    Boa dica para permitir downloads só a pessoas autorizadas, por exemplo.

  4. Boa dica, mas nesta linha por exemplo:
    case “jpg”: $ctype=”image/jpg”; break;

    Isto quer dizer que é permitido o download de um ficheiro .jpg
    Ora, um utilizador mais experiente consegue saber os caminhos, sejam absolutos ou relativos para um .jpg e fazer o download do mesmo sem autorização.
    Por isso este post poderia ser melhorado, exemplificando como fazer com o .htaccess para que o “hotlinking” de ficheiros .jpg nao sejam permitidos.

    Seja como for, bom post.

    • softclean says:

      Com este método, não sabes necessariamente onde está o ficheiro no servidor, porque este é lido pelo PHP e despejado no browser, mas tens razão quanto ao hotlinking, pois é sempre possível aceder-lhe.

      Podem inclusive verificar o referrer e bloquear tudo o que seja fora do domínio. Tirando referrers forjados, funciona muito bem.

      E um bem haja para esta secção, espero um dia contribuir com um código interessante! 😀

    • Pedro A. says:

      Pelo que percebi o exemplo é para forçar o download de um ficheiro quando se carrega uma página e o switch serve para indicar ao browser qual o tipo de ficheiro para sacar. No caso do ficheiro ser um JPG, o browser é informado que o ficheiro é do tipo image/jpg. Como resultado o browser vai fazer o download da imagem em vez de a mostrar na página…

  5. carlos rajas says:

    Alto nível Bruno, keep it up !!!

  6. Se tiverem sugestões, podem enviar para o Pplware, depois de uma triagem chegará a mim 🙂

  7. Hugo Sousa says:

    Bom tutorial. Simples, prático e principalmente: útil!

    Tenho apenas dois detalhes a apontar:
    1 – A variavel $ext foi declarada e assignada, mas nunca utilizada. 🙂
    2 – Colocaste o post na categoria CSharp, quando penso que a tua ideia era colocar na de PHP.

    Cumprimentos, continua o bom trabalho!

  8. Edgar Sousa says:

    Uma coisa só: se a ideia é forçar o browser a fazer o download é usar sempre o tipo “application/octect-stream”.

    Em alguns casos o browser vai ignorar o “Content-Disposition: attachment” e vai lançar o plugin na mesma (Acrobat Reader e o IE costumavam-me dar esse problema)

    • Hugo Pinto says:

      Exactamente. Só faz sentido estar a indicar os vários MIME se se quer permitir que o browser carrege o visualizador respectivo, de resto é tudo com “application/octect-stream”

      • O objectivo é esse, que o browser saiba como interpretar.

        Por exemplo no firefox se não tiver o Mime-type, um ficheiro pdf só permite o download, mas se tiver o Mime-type, já permite o “Abrir” para ver com o programa apropriado (sem ser dentro da janela do browser)

  9. Deixem-me dar-vos uma sugestão: escrevam um artigo sobre ColdFusion. Embora, hoje, já não faça praticamente nada nesta linguagem (porque o servidor é pago…), a verdade é que todos os dias sinto saudades da gigantesca facilidade de programação, da simplicidade do código, da sua potência, e do facto de haver uma maneira “oficial” para fazer seja o que for.

    ColdFusion – informem-se

    • Quem me conhece sabe que não só sou adepto do open-source, como principalmente não sou a favor do software proprietário.

      Como tal, se pretendes um artigo sobre ColdFusion, envia para o Pplware que teremos todo o gosto em o publicar 🙂

  10. Pedro says:

    esse script é o mais básico para download. não tem suporte para resumir download, não detecta quando o utilizador cancela o mesmo, são só os exemplos mais notórios de falhas.

  11. carlos says:

    so 1 observaçao, a categoria esta em csharp deva tar em php.

  12. Cristina Branco says:

    Parabéns pelo post estava mesmo a necessitar desta validação para o upload de ficheiros do tipo pdf, contudo precisava de um que aceita-se documentos word 2007, visto que o aplication /msword só aceita word 2003.

    Muitos parabéns

  13. Fabio says:

    Como possa fazer para abrir para download em computadores Linux?
    Pois o DOC não abre como download.

    • Comentas ou removes a linha do doc, para ficar $ctype=”application/force-download”

      • João Azevedo says:

        Boas Bruno,
        Ao longo deste conversa apercebi-me que tens grandes conhecimentos no que diz ao php e como tal gostava de lhe pedir ajuda com um trabalho que estou a desenvolver.
        Estou a desenvolver um site em que permite listar imagens de uma base de dados e agora o que eu queria era poder seleccionar as fotos com uma “checkbox” e no fim fazer download de todas as fotos seleccionas.
        Pode ajudar-me?

        • Olá João,

          A melhor forma de obteres ajuda é no Fórum do Pplware http://forum.pplware.com lá podes contar com a minha ajuda e de muitas mais pessoas 😉

          Respondendo rapidamente à tua pergunta, podes guardar num array as imagens guardadas (bastará dares o mesmo nome às checkboxes, algo como name=”selectedImages[]”), comprimi-las e retornar ao browser.

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.