2012-02-09 11 views
6

El propósito es descargar el archivo backup.sql volcado después de ejecutar el script de dumping sql (desde PHP). Normalmente, el archivo .sql volcado se saca (escribe) en el servidor. Luego, cuando hago un enlace href a ese archivo como <a href="backup.sql">Download File</a>, el archivo se abre dentro del navegador al hacer clic, en lugar de descargarse.¿Cómo crear un enlace descargable al archivo de texto?

  • sólo quiero hacer de un simple enlace HREF (con un archivo, texto), que se presentó con "Guardar como .. " de diálogo en la simple Izquierda Haga clic.

¿Cómo se podría hacer?

Respuesta

3

Agregue las siguientes líneas a su archivo .htaccess.

<Files "backup.sql"> 
ForceType applicaton/octet-stream 
Header set Content-Disposition attachment 
</Files> 
+0

Esto es tan genial Rob. Gracias por el truco;) Funciona muy bien para mí, pero si es posible, ¿puedo tenerlo con el diálogo 'Guardar como ...'? –

+0

Debería obtener un diálogo 'Guardar como ...' usando estas reglas. (Si obtiene un error del Servidor interno, probablemente no haya cargado el módulo de encabezados). –

+0

No Rob. El archivo ahora se guarda con solo un clic en la carpeta predeterminada de descarga del navegador. Pero, extensamente, solo quiero que el navegador pregunte con un cuadro de diálogo para guardar (como cuando guardamos un enlace con el botón derecho del ratón -> Guardar como). Pero, solo preguntando por el conocimiento. Esto no es realmente necesario, lo sé. –

3

Otra opción está cumpliendo con en un archivo .php por ejemplo download.php

tienen esto en download.php

$path = "backup.sql" 
    header("Content-Type: application/octet-stream"); // 

    header("Content-Length: " . filesize($path));  

    header('Content-Disposition: attachment; filename='.$path); 

    readfile($path); 

continuación

<a href="download.php">Download File</a> 
+0

Escrito tan genial, vikki. Gracias por ello;) Funciona muy bien para mí, pero si es posible, ¿puedo tenerlo con el diálogo 'Guardar como ...'? –

17

o usted podría utilizar la nueva propiedad HTML5 download en la etiqueta de anclaje de su html.

El código será algo como

<a download href="path/to/the/download/file"> Clicking on this link will force download the file</a> 

Funciona en Firefox y Chrome versión más reciente. ¿Debo mencionar que no lo revisé en IE? : P

+2

funciona en IE6 Acabo de verificar ...: P –

+0

Con las mismas condiciones que se mencionaron anteriormente: la configuración del navegador por parte del usuario puede hacer que el usuario elija entre ver y guardar. Cuando el autor de html SABE que el archivo es binario y causa consternación si se lo visualiza, ¿no hay una forma para que el autor html permita solo la opción "Guardar"? Parece que la pregunta del OP todavía no ha sido respondida. ¿Hay algunos sufijos de archivo (por ejemplo, .exe) que se comporten de manera diferente? – bootchk

+0

¡Impresionante simple! –

Cuestiones relacionadas