JavaScript - BAJAR UN ARCHIVO DEL SERVIDOR EN VEZ DE ABRIRLO

 
Vista:
Imágen de perfil de Luis Ponce

BAJAR UN ARCHIVO DEL SERVIDOR EN VEZ DE ABRIRLO

Publicado por Luis Ponce (3 intervenciones) el 11/03/2017 16:37:55
Hola

Vengo haciendo una pagina web, donde los usuarios a partir de un sistema comercial sube archivos al servidor, y lo que necesito es que mediante la pagina, puedan bajar los archivos desde cualquier ubicación geográfica.

Tengo esta función (codigo que comparto);

1
2
3
4
5
6
7
8
9
10
function descXml()
	{
	 var txtClt=$("input[name*='txtClt]").val();
	 var txtTipo=$("select[name*='txtTipo']").val();
	 var txtNumero=$("input[name*='txtNumero']").val();
	 var site='http://dominiouno/libros/'
	 var docxml=txtClt+"_"+txtTipo+"_"+txtNumero+".xml";
	var url = site + "/" + docxml;
    window.open(url);
	}

Este código va dentro de un script, en mi html, esta bien, ubica el archivo, pero lo abre, yo necesito que lo baje, o que al menos me aparezca el dialogo de "guardar"

Alguien sabe como?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

BAJAR UN ARCHIVO DEL SERVIDOR EN VEZ DE ABRIRLO

Publicado por xve (2100 intervenciones) el 12/03/2017 10:31:43
Hola Luis, prueba con esto:
1
document.execCommand('SaveAs',true,url);
en vez de:
1
window.open(url);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Luis Ponce

BAJAR UN ARCHIVO DEL SERVIDOR EN VEZ DE ABRIRLO

Publicado por Luis Ponce (3 intervenciones) el 13/03/2017 04:39:08
Gracias por tu respuesta

pero no baja el archivo, en realidad no hace nada, presiono el boton y como que no tiene una acción.

Quedó asi

1
2
3
4
5
6
7
8
9
10
function descXml()
	{
	 var txtClt=$("input[name*='txtClt]").val();
	 var txtTipo=$("select[name*='txtTipo']").val();
	 var txtNumero=$("input[name*='txtNumero']").val();
	 var site='http://dominiouno/libros/'
	 var docxml=txtClt+"_"+txtTipo+"_"+txtNumero+".xml";
	var url = site + "/" + docxml;
    document.execCommand('SaveAs',true,url);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

BAJAR UN ARCHIVO DEL SERVIDOR EN VEZ DE ABRIRLO

Publicado por xve (2100 intervenciones) el 13/03/2017 08:52:56
Hola Luis, he encontrado una manera que funciona en Chrome y Firefox, no se si también en Edge...

1
<a href="http://localhost/file.xml" download="file.xml">descargar</a>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

BAJAR UN ARCHIVO DEL SERVIDOR EN VEZ DE ABRIRLO

Publicado por Veronica (1 intervención) el 08/06/2019 20:49:27
Hola, solo quería agradecer por tu contribución es algo super sencillo y funciona muy bien.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

BAJAR UN ARCHIVO DEL SERVIDOR EN VEZ DE ABRIRLO

Publicado por luis (1 intervención) el 05/03/2020 23:58:29
si la ruta no es por protocolo http y requiero que sea una ruta local, pero fuera del proyecto es decir tengo el proyecto en descargar y quiero extraer el archivo de C: como seria la ruta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

BAJAR UN ARCHIVO DEL SERVIDOR EN VEZ DE ABRIRLO

Publicado por David Quintero (1 intervención) el 14/09/2017 19:49:29
Que tal amigo

Pudiste resolver el problema ???

como lo hiciste ???

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Luis

BAJAR UN ARCHIVO DEL SERVIDOR EN VEZ DE ABRIRLO

Publicado por Luis (3 intervenciones) el 15/09/2017 00:48:41
Hola

No, no me funcionó

Si sabes algo, avísame
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

BAJAR UN ARCHIVO DEL SERVIDOR EN VEZ DE ABRIRLO

Publicado por Alejandro (532 intervenciones) el 06/03/2020 15:41:46
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Lo puedes hacer con php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
function descargar($archivo){
    if(!empty($archivo)){
        $filename = basename($archivo);
        $filepath = 'C:\\directorioPrivado\\'.$filename;
 
        if(!empty($filename) && file_exists($filepath)){
            header('Content-Description: File Transfer');
            header('Content-Type: application/octet-stream');
            header('Content-Disposition: attachment; filename="'.$filename.'"');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            header('Pragma: public');
            header('Content-Lenght: '.filesize($filepath));
            header('Content-Transfer-Encoding: binary');
            readfile($filepath);
            exit;
        }else{
            echo "<h1>El archivo no existe.</h1>";
        }
    }
}
 
if( !isset($_GET['file']) ){
	echo '<a href="descarga.php?file=archivoEjemplo.abc">Descargar</a>';
}else{
	descargar($_GET['file']);
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar