Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Código para descargar archivos

Estas en el tema de Código para descargar archivos en el foro de Javascript en Foros del Web. Hola, Tengo el siguiente problema: Un usuario debe ingresare un nombre en un input y se debe mostrar una lista de archivos con la coincidencia. ...
  #1 (permalink)  
Antiguo 09/06/2016, 15:01
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Código para descargar archivos

Hola,

Tengo el siguiente problema:


Un usuario debe ingresare un nombre en un input y se debe mostrar una lista de archivos con la coincidencia. Luego al seleccionar uno, el archivo (QUE ESTA ALOJADO EN EL SERVIDOR) debe descargarse en el equipo del usuario.

Como puedo hacer aquello????


Por ahora solo utilizo este código para que lo genere en una ventana emergente, pero casi siempre están bloqueadas. Alguien sabe como puedo descargarlo? O que desde PHP lo pueda descargar mediante ajax???

Código Javascript:
Ver original
  1. window.open(data.substring(3, data.length),'_blank');
  #2 (permalink)  
Antiguo 09/06/2016, 16:41
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: Código para descargar archivos

Código Javascript:
Ver original
  1. function consultar(id,campo,ejercicio_registro){
  2.     $.ajax({
  3.        url : "archivo.php",
  4.        type : 'POST',
  5.        dataType : 'text',
  6.        data :  { id: id,campo:campo,EJERCICIO_REGISTRO:ejercicio_registro },
  7.        success : function(binario) {
  8.            //alert(binario);
  9.            var nombreLogico = campo;
  10.            var parametros = "dependent=yes,locationbar=no,scrollbars=yes,menubar=yes,resizable,screenX=50,screenY=50,width=850,height=1050";
  11.            var htmlText = "<embed width=100% height=100% type='application/pdf' src='data:application/pdf,"+escape(binario)+"'></embed>";
  12.            var detailWindow = window.open ("", nombreLogico, parametros);
  13.            detailWindow.document.write(htmlText);
  14.            detailWindow.document.close();
  15.        },
  16.        error : function(jqXHR, status, error) {
  17.                        alert("error\njqXHR="+jqXHR+"\nstatus="+status+"\nerror="+error);
  18.        },
  19.        complete : function(jqXHR, status) {
  20.  
  21.        }
  22.     });
  23. }
  #3 (permalink)  
Antiguo 09/06/2016, 22:58
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Código para descargar archivos

Puedes asignar la ruta, nombre del archivo y su extensión al atributo href de un enlace y añadirle a este el atributo download; aunque, para una descarga segura, es mejor hacerlo desde el lado del servidor; en tu caso, con PHP.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 10/06/2016, 11:40
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: Código para descargar archivos

Hola Alexis88, no conocía ese nuevo elemento download que veo que es de HTML5 es muy bueno. Pero me surge una duda, eso funcionaria si tengo el archivo en disco, pero si el archivo esta en base de datos ¿hay manera de descargarlo utilizando este nuevo atributo? ¿O en ese caso hay que optar por la opción que yo puse?
  #5 (permalink)  
Antiguo 11/06/2016, 07:33
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Código para descargar archivos

Por un tema de rendimiento, te sugiero guardar el archivo físicamente en el servidor y la ruta de acceso a él en la base de datos; de esta manera, cuando generes los enlaces de descarga, solo necesitarás leer la tabla de la base de datos en donde guardes las rutas de acceso.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 13/06/2016, 09:09
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Código para descargar archivos

Lo he descargado desde el servidor y no he tenido problemas, gracias.!!!
  #7 (permalink)  
Antiguo 13/06/2016, 10:04
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: Código para descargar archivos

Bueno, eso no contesto mi pregunta.
  #8 (permalink)  
Antiguo 13/06/2016, 14:31
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Código para descargar archivos

Cita:
Iniciado por abrahamhs Ver Mensaje
Bueno, eso no contesto mi pregunta.
No la contesté porque me parece innecesario trabajar de esa manera, pero con PHP podrás lograr lo que buscas. Solo tienes que modificar las cabeceras.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 13/06/2016, 16:17
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: Código para descargar archivos

Pero no es por trabajar de esa forma, es por adquirir conocimiento, trabajar de una forma u otra ya debe ser descición mía.

Última edición por abrahamhs; 13/06/2016 a las 16:35
  #10 (permalink)  
Antiguo 13/06/2016, 20:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Código para descargar archivos

Cita:
Iniciado por abrahamhs Ver Mensaje
Pero no es por trabajar de esa forma, es por adquirir conocimiento, trabajar de una forma u otra ya debe ser descición mía.
Pues, entonces, debiste empezar buscando antes de preguntar por aquí. Hay bastante información al respecto; incluso en hilos publicados en este foro.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 14/06/2016, 09:22
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: Código para descargar archivos

Creo que no entendiste mi pregunta. Se descargar archivos de la base de datos, pero me preguntaba si se pueden descargar usando el elemento a y su propiedad download, ya que buscando información solo he encontrado la forma que yo se, que no usa la propiedad download. Pero no te preocupes seguiré buscando por mis medios. Al menos aprendí una gran lección sobre saber trabajar en equipo.
Muchas gracias.
  #12 (permalink)  
Antiguo 14/06/2016, 09:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Código para descargar archivos

Cita:
Iniciado por abrahamhs Ver Mensaje
[...] me preguntaba si se pueden descargar usando el elemento a y su propiedad download [...]
El valor del atributo href apunta hacia un directorio, sea local o externo. Si guardas el archivo como blob en la base de datos, no habría una dirección hacia la cual apuntar.

Cita:
Iniciado por abrahamhs Ver Mensaje
[...] Al menos aprendí una gran lección sobre saber trabajar en equipo [...]
No seas resentido. Lo que te dí fue un consejo para que dependas más de ti y menos de los demás; el "trabajo en equipo" no tiene nada que ver en esto. Solo espero que tomes a bien lo que se te aconseja, pues, siendo sinceros, no fue un mal consejo, y lo sabes.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #13 (permalink)  
Antiguo 14/06/2016, 10:03
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Código para descargar archivos

La propiedad download fuerza la descarga, en contra posición al comportamiento natural de un vinculo. Para forzar la descarga el archivo ha de estar fisicamente en el servidor y así poder apuntar hacia el con el atributo href
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: ajax, input, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:32.