/mod_xsendfile

  • mod_xsendfile for Apache2/Apache2.2
    https://tn123.org/mod_xsendfile

    mod_xsendfile is a small Apache2 module that processes X-SENDFILE headers registered by the original output handler.

    If it encounters the presence of such header it will discard all output and send the file specified by that header instead using Apache internals including all optimizations like caching-headers and sendfile or mmap if configured.

    It is useful for processing script-output of e.g. php, perl or any cgi.

    #apache #téléchargement #identification

    • http://www.web-developpeur-php.com/blog/article/mod-xsendfile-forcer-le-telechargement-avec-apache-php

      Forcer le téléchargement d’un fichier est relativement simple en PHP. Il suffit de l’ouvrir, le lire, l’assigner à une variable, prévoir les headers correspondants et enfin envoyer le contenu du fameux fichier. Très pratique pour gérer l’accès de fichiers soumis à autorisation.

      Oui... Mais ! D’une part, ce processus est très lent : combien de temps pour que PHP ouvre et renvoie un fichier d’une centaine de Mo ? Beaucoup trop. D’autre part la limite de mémoire allouée à PHP sera très vite atteinte, ou le temps d’execution maximal le se sera avant...

      Une alternative est proposée par mod_xsendfile, un module Apache2 (mais des versions compatibles Nginx et lighttpd existent). Le module surveille la présence d’en-têtes X-SENDFILE dans les requêtes http et réagit en envoyant directement le fichier demandé au navigateur sans traitement préalable par PHP ou n’importe quel autre langage (perl, cgi...).