Pregunta Guardar archivo Javascript con nombre de archivo [duplicado]


Esta pregunta ya tiene una respuesta aquí:

Estoy trabajando en un editor de texto en Javascript puro. Me gustaría que cuando el usuario haga clic en el botón "Guardar", el editor descargue el archivo. Ya tengo esto en parte funcionando:

uriContent = "data:application/octet-stream," + encodeURIComponent(codeMirror.getValue());
newWindow=window.open(uriContent, 'filename.txt');

El archivo se descarga, pero el problema es que el archivo se llama 'descargar'.

Pregunta: ¿Cómo podría cambiar el nombre del archivo para que sea lo que quiero, por ejemplo? filename.txt?


33
2017-10-10 19:48


origen


Respuestas:


Reemplace su botón "Guardar" con un enlace de anclaje y configure el nuevo download atributo dinámicamente Funciona en Chrome y Firefox:

var d = "ha";
$(this).attr("href", "data:image/png;base64,abcdefghijklmnop").attr("download", "file-" + d + ".png");

Aquí hay un ejemplo de trabajo con el nombre establecido como la fecha actual: http://jsfiddle.net/Qjvb3/

Aquí una tabla de compatibilidad para downloadatributo: http://caniuse.com/download


23
2017-08-03 00:22



function saveAs(uri, filename) {
    var link = document.createElement('a');
    if (typeof link.download === 'string') {
        document.body.appendChild(link); // Firefox requires the link to be in the body
        link.download = filename;
        link.href = uri;
        link.click();
        document.body.removeChild(link); // remove the link when done
    } else {
        location.replace(uri);
    }
}

13
2017-10-14 12:58



Utilizar el filename propiedad como esta:

uriContent = "data:application/octet-stream;filename=filename.txt," + 
              encodeURIComponent(codeMirror.getValue());
newWindow=window.open(uriContent, 'filename.txt');

EDITAR:

Aparentemente, no hay una manera confiable de hacer esto. Ver: ¿Hay alguna forma de especificar un nombre de archivo sugerido al usar datos: URI?


5
2017-10-10 19:51