8 votos

¿Cómo enviar los encabezados Content-Disposition en apache archivos?

Tengo un directorio de archivos de texto que estoy cumpliendo con apache 2. Normalmente cuando yo (o cualquier usuario) el acceso a los archivos que ver en su navegador. Quiero a la 'fuerza'* el navegador web para que aparezca un "Guardar como" cuadro de diálogo. Sé que esto es posible hacerlo con la Content-Disposition encabezados (más info).

¿Hay alguna forma de encenderlo para cada archivo?

Idealmente me gustaría algo como esto:

<Directory textfiles>
   AutoAddContentDispositionHeaders On
</Directory>

Y, a continuación, apache establece el contenido correcto de disposición de cabecera, incluso con el mismo nombre.

Algo como esto puede ser posible con el apache Header directiva.

Los puntos de bonificación si se incluye en apache en debian.

Yo podría hacer una simple envoltura de PHP script que toma en un filename argumento, hace la llamada a header(...) y, a continuación, imprime el archivo, pero luego tengo que validdate de entrada, etc. que el trabajo que estoy tratando de evitar.


* Sé que en realidad no se puede forzar las cosas cuando se trata de la web

12voto

mblsha Puntos 305

He descubierto que esto es lo que quiero:

<Location /textfiles>
    SetEnvIf Request_URI "^.*/([^/]*)$" FILENAME=$1
    Header set "Content-disposition" "attachment; filename=%{FILENAME}e"
    UnsetEnv FILENAME
</Location>

2voto

Christian Puntos 3572

mod_headersdebe ser lo que buscas:

<IfModule mod_headers.c> 
  <Location ~ ".*/textfiles/.*"> 
    Header set Content-Disposition attachment
  </Location>
</IfModule>

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: