Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] subir archivo con form data

Estas en el tema de subir archivo con form data en el foro de Jquery en Foros del Web. buenas a todos, mi problema es el siguiente tengo un formulario simple Código HTML: <form id= "formNuevoBoletin" method= "post" action= "includes/processNew.php" enctype= "multipart/form-data" > <label> ...
  #1 (permalink)  
Antiguo 25/09/2014, 13:05
 
Fecha de Ingreso: noviembre-2013
Mensajes: 78
Antigüedad: 10 años, 4 meses
Puntos: 4
subir archivo con form data

buenas a todos,

mi problema es el siguiente

tengo un formulario simple
Código HTML:
<form id="formNuevoBoletin" method="post" action="includes/processNew.php" enctype="multipart/form-data" >
	
		
		<label>Titulo del Boletin:</label></td>
		<input type="text" name="titulo"></td>	
		

	
		<label>Selecciona el Archivo:</label></td>
		<input type="file" name="archivo"></td>
		
		
	
		<input type="hidden" name="tipo" value="<?php echo $tipo ?>">
		<input type="button" onclick="subir('boletin')" value="Subir"></td>
</form> 

ahora al momento de pasar por la funcion .... el error illegal invocation

el script es este


Código:
function subir(tipo){
	if (tipo=="boletin"){
		var formData = new FormData("#formNuevoBoletin");
		$.ajax({
				url: 'includes/processNew.php',
				type: 'POST',
				async: true,
				data: formData,
				success:  function (response) {
			             $("#respuesta").html(response);
			         }
			});
	};
}

me imagino que el problema es con el form data, de echo es la primera vez que lo ocupo y me quede estancado en esto ...

espero su ayuda gracias :D
  #2 (permalink)  
Antiguo 25/09/2014, 13:52
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: subir archivo con form data

Eso sucede porque no estás usando correctamente al objeto FormData. Puedes crear al objeto sin pasarle un argumento y luego recorres al conjunto de elementos del formulario para añadírselos uno por uno o los añades a todos de una sola vez.

Esta es una forma básica de hacerlo:
Código Javascript:
Ver original
  1. var formulario = $("#formNuevoBoletin"),
  2.     elementos = formulario.elements,
  3.     total = elementos.length,
  4.     formData = new FormData();
  5.  
  6. for (var i = 0; i < total; i++){
  7.     if (elementos[i].type == "file"){
  8.         var archivo = elementos[i].files;
  9.         formData.append(elementos[i].name, archivo[0]);
  10.     }
  11.     else{
  12.         formData.append(elementos[i].name, elementos[i].value);
  13.     }
  14. }
  15.  
  16. //Acá ejecutas al método Ajax

Lo que hago es simple. Primero, tomo al formulario, sus elementos y el total que estos representan, además, creo al objeto FormData, luego, recorro al conjunto de elementos del formulario y, en cada iteración, verifico el tipo de elemento de cada uno de ellos. Cuando se trate de un campo de tipo file, obtengo al conjunto de elementos que este posea y añado al primero de ellos (suponiendo que solo enviarás un archivo, de lo contrario, tendrás que usar un bucle para ir añadiéndolos) al objeto, caso contrario, es decir, si se trata de otro tipo de elemento, simplemente añado su valor. En ambos casos, cada valor irá relacionado al nombre del elemento.

Luego de esto, puedes enviar al objeto FormData a través del método Ajax. Solo como un consejo, la próxima vez, busca la documentación respectiva para que sepas qué hacer, aquí hay parte de lo que puedes encontrar con una simple búsqueda.

Saludos
__________________
«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
  #3 (permalink)  
Antiguo 25/09/2014, 15:01
 
Fecha de Ingreso: noviembre-2013
Mensajes: 78
Antigüedad: 10 años, 4 meses
Puntos: 4
Respuesta: subir archivo con form data

Cita:
Iniciado por Alexis88 Ver Mensaje
Solo como un consejo, la próxima vez, busca la documentación respectiva para que sepas qué hacer, aquí hay parte de lo que puedes encontrar con una simple búsqueda.

Saludos
sip si leí esa documentación, lo que no me quedo nunca claro era como ocupar el append con input de archivos ya que con texto lo pasaba sin ningun problema.

ya lo solucioné....

un millon de gracias.
  #4 (permalink)  
Antiguo 25/09/2014, 17:18
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: subir archivo con form data

Hola:

Al objeto FormData se le puede pasar como argumento el mismo formulario: Subir archivos con Ajax... en el apunte no se usan librerías, y el código es bastante escueto.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: ajax, data, form, formulario, funcion, html, input, javascript, 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 14:40.