Foros del Web » Programando para Internet » Javascript »

subir archivo con javascript puro

Estas en el tema de subir archivo con javascript puro en el foro de Javascript en Foros del Web. buenas tardes amigos, mi duda es esa, como puedo subir un archivo tipo imagen al servidor, haciendo uso de javascript puro sin usar jquery ni ...
  #1 (permalink)  
Antiguo 17/08/2015, 14:29
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 10 meses
Puntos: 2
subir archivo con javascript puro

buenas tardes amigos,

mi duda es esa, como puedo subir un archivo tipo imagen al servidor, haciendo uso de javascript puro sin usar jquery ni otro plugin.

muchas gracias.

ya se los conceptos de ajax y actualmente envio datos por post y get haciendo uso de javascript a php y luego los almaceno en la base de datos, pero ahora requiero cargar una foto con ajax pero a puro javascript ya que no me gusta usar plugins ni tener dependencias de terceros.

de antemano gracias quedo atento
__________________
http://tecnologiaco.com/
  #2 (permalink)  
Antiguo 17/08/2015, 15:26
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: subir archivo con javascript puro

Busca información sobre el objeto FileReader()

Con éste puedes realizar varias cosas, entre ellas conocer el tamaño y el tipo de archivo antes de subirlo.

Sólo ten cuidado al usarlo ya que es asíncrono
  #3 (permalink)  
Antiguo 18/08/2015, 08:04
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: subir archivo con javascript puro

muchas gracias por tu respuesta ocp001a

dejo un enlace por si alguien entra a este hilo y desea obtener información sobre el objeto que mencionas

http://www.html5rocks.com/es/tutorials/file/dndfiles/
__________________
http://tecnologiaco.com/
  #4 (permalink)  
Antiguo 18/08/2015, 21:57
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: subir archivo con javascript puro

disculpa ocp001a

http://www.cristalab.com/tutoriales/...tml5-c104046l/

filereader según lo que leo, se usa para mostrar la imagen en la interfaz grafica al usuario, para darle la sensación de que se esta subiendo.

pero en realidad quien empaqueta toda la información de la imagen y quien debe ser enviado al servidor donde lo espera un lenguaje (php, java, c#...) para procesar la imagen es formdata

estoy en lo cierto?
__________________
http://tecnologiaco.com/
  #5 (permalink)  
Antiguo 19/08/2015, 14:13
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: subir archivo con javascript puro

dejo otro enlace que tal vez les interese

https://developer.mozilla.org/es/doc...jetos_FormData
__________________
http://tecnologiaco.com/
  #6 (permalink)  
Antiguo 19/08/2015, 15:50
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: subir archivo con javascript puro

Cita:
Iniciado por andresbetancourt Ver Mensaje
disculpa ocp001a

filereader según lo que leo, se usa para mostrar la imagen en la interfaz grafica al usuario, para darle la sensación de que se esta subiendo.

No exactamente.

Mediante FileReader es posible mostrar la imagen, pero no es la única finalidad.

Te mostraré una parte de un código que tengo:

Código Javascript:
Ver original
  1. function subir(){
  2.     var i=document.getElementById('fileUp-input');
  3.  
  4.     if(window.FileReader){
  5.         for(var j=0;j<i.files.length;j++){//como mi input file es múltiple, recorro sus elementos (archivos) que pueden ser varios
  6.             var reader = new FileReader();//instanciamos FileReader
  7.             reader.onloadend = (function(f){//creamos la función que recogerá los datos
  8.                 return function(e){
  9.                     var content = e.target.result.split(",",2)[1];//obtenemos el contenido del archivo, estará codificado en Base64
  10.                     enviarArchivo(f.name,content);le paso a una función el nombre del archivo y su contenido. Esta función puede pasar el contenido por ajax u otro medio al servidor
  11.                 }
  12.             })(i.files[j]);
  13.             reader.readAsDataURL(i.files[j]);//
  14.         }
  15.     }
  16. }

Código HTML:
Ver original
  1. <input type="file" id="fileUp-input" onchange="subir()" multiple>

En realidad este código es sólo una pequeña parte de mi gestor de archivos, que incluye varias validaciones pero para que te des una idea creo que es suficiente.

Como verás dentro de la variable content recoges el contenido del archivo, éste lo puedes enviar directamente a una petición ajax, a un webservice, etc.

Etiquetas: js
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 21:22.