2011-09-15 55 views
9

Quiero poder descargar un archivo web, pero cuando se abre el cuadro de diálogo de descarga, se renombra el nombre del archivo.Javascript cambiar el nombre del archivo al descargar

Ex: Archivo: http://<server>/<site>/test.txt

y cuando hago clic para descargar el archivo, de diálogo de descarga abierta con el nombre de archivo: test001.txt.

¿Cómo puedo lograr eso?

Respuesta

0

No puede hacer eso en Javascript. El navegador abre el diálogo "Guardar en" y no puede acceder a eso a través de JS, es un diálogo estándar desde el sistema operativo.

Su servidor debe proporcionar el archivo con el nombre deseado antes de que el usuario haga clic en el enlace de descarga.

¿Cuál es la razón por la que desea cambiar el nombre del archivo descargado de todos modos?

+0

I tener los archivos en una biblioteca Sharepoint y estoy tratando de crear una acción personalizada para descargar los archivos y agregar el documento versión en el nombre del archivo. Para realizar esta acción personalizada, solo puedo usar el código de JavaScript. ¿Algún consejo? – bruno2007

2

Este efecto se logra enviando un encabezado adicional. Puede usar PHP, por ejemplo, para lograr esto:

Las URL pueden reescribirse utilizando .htaccess, (internamente) redireccionando la solicitud a un archivo PHP. Voy a mostrar un ejemplo sencillo codificado, de cómo se puede configurar el encabezado:

<?php 
    header('Content-type: text/plain'); 
    header('Content-Disposition: attachment; filename="test001.txt"'); 
    readfile('files/test.txt'); 
    //assuming that the files are stored in a directory, not in a database 
?> 
+0

pero esto no cumple con la naturaleza dinámica que está buscando. Supongo que por supuesto – Truesky

+0

mostré cómo se pueden establecer los encabezados. Si tiene las habilidades para programar en PHP, puede modificar el código para lograr su objetivo. –

0

Si lo que desea es volver tipo continuo del nombre del archivo, usted tiene que escribir un guión que no perderá de vista eso y devolver ese archivo al usuario. Una forma es usar PHP simple, o algo más avanzado si se trata de varios archivos a la vez, posiblemente una llamada cURL en php para que pueda generar varios archivos diferentes. Supongo que eso es lo que estás buscando hacer, pero no puedes cambiar dinámicamente el nombre del archivo en el cuadro de guardado en ese sentido, devuelves el nombre de archivo savename.txt.

2

Use download atributo del enlace. Pero funciona solo en el navegador Chrome :)

+2

Ahora en FF también :) –

+0

http://caniuse.com/#feat=download Ahora es compatible con Opera y el navegador android. –

13

Como InviS sugiere, ahora hay un atributo download en los enlaces.

Ejemplo:

<a href="http://server/site/test.txt" download="test001.txt">Download Your File</a> 
+0

Utilizo esto en combinación con target = "_ blank" para otros navegadores. – Darren

+1

http://caniuse.com/#feat=download Ahora es compatible con Opera y el navegador android. –

+0

Gracias, actualicé mi respuesta –

Cuestiones relacionadas