Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Subir imagen sin recargar

Estas en el tema de Subir imagen sin recargar en el foro de Javascript en Foros del Web. Poseo un problema con mi codigo y agradeceria ayuda para corregir este. Lo que se supone que debe hacer es cargar una imagen sin tener ...
  #1 (permalink)  
Antiguo 19/06/2013, 12:14
 
Fecha de Ingreso: abril-2013
Ubicación: bogota
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación Subir imagen sin recargar

Poseo un problema con mi codigo y agradeceria ayuda para corregir este.
Lo que se supone que debe hacer es cargar una imagen sin tener recargar la pagina, utilize jqery para acceder a la funcion .ajax y php es el que realiza el guardado y la muestra de la imagen.
Este es el codigo de la pagina.html

Código HTML:
<!-- Subir multiples archivos -->
<html>
<head>
<title>Problema</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="eje3.js"></script>
</head>
<body>

	Seleccione una imagen:<input type="file" name="foto" id="nu"><br>
	
	<input type="button" href="javascript:;" onclick="proceso($('#nu').val());return false;" value="Calcula"/>
	
	<div id="resultados"></div>

</body>
</html> 
Esta es la de la funcion con jquery (funcion.js)

Código Javascript:
Ver original
  1. var x=$("#nu").attr("name");
  2. function proceso(n){
  3.    
  4. var numero = {"valor":x};
  5.  
  6.     $.ajax({
  7.            async:true,
  8.            type: "POST",
  9.            dataType: "html",
  10.            contentType: "application/x-www-form-urlencoded",
  11.            url:"eje3.php",
  12.            data:numero,
  13.            beforeSend:function () {
  14.         $("#resultados").html("Procesando, espere por favor...");
  15.         },
  16.            success:function (datos) {
  17.         $("#resultados").html(datos);
  18.         },
  19.            timeout:4000,
  20.        
  21.          });
  22.   return false;
  23.  
  24.  
  25. }

y Esta es la pagina php que realiza el guardado y muestra la imagen subida (eje3.php)

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. //------------------
  5. if ($_FILES['valor']['tmp_name']!="")
  6. {
  7.   copy($_FILES['valor']['tmp_name'],$_FILES['valor']['name']);
  8.   $nom=$_FILES['valor']['name'];
  9.  
  10.  //filtrar por extencion :P inicio
  11.     $archivo = $nom;
  12.     $trozos = explode(".", $archivo);
  13.     $extension = end($trozos);
  14.     echo "La extensión del archivo es: $extension"."<br>";  
  15. // fin
  16. $j="jpg";
  17. $png="png";
  18. $jpeg="jpeg";
  19.  
  20.   if($extension==$j || $extension==$png || $extension==$jpeg){
  21.     echo "<img src=\"$nom\">";
  22.   }else{
  23.     echo "No es una Imagen ";
  24.     }
  25. }  
  26.  
  27. ?>

Lo que sucede es que no me realiza esto, simplemente dice "procesando por favor espere" el mensaje antes de subir, pero deresto nada, no sube ni mucho menos guarda
quiziera saber que parte tengo mal, o si estoy haciendo todo esto mal.
Gracias :D
  #2 (permalink)  
Antiguo 19/06/2013, 13:24
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Subir imagen sin recargar

Usa este plugin ya que solo con ajax no puedes subir archivos

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 19/06/2013, 13:34
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Subir imagen sin recargar

Te das cuenta que estas en un foro de PHP?, todo lo que estas haciendo es en javascript, publica en el foro adecuado!

Eso jamas funcionará, no se de donde has sacado dicho código, pero no puedes enviar un archivo como lo estas haciendo, en todo caso primero debes leer el archivo con javascript y obtener el binario y luego pasar el binario al objeto ajax para ser subido, el problema es que no se puede hacer en todos los navegadores ya que necesitas 2 objetos (clases) propias de HTML 5 para lograrlo...

Busca información sobre FileReader() y FormData() para poder realizar un upload vía ajax, por ultimo, ten en cuenta que ambas clases no son soportadas aún por la mayoría de navegadores...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #4 (permalink)  
Antiguo 19/06/2013, 21:17
 
Fecha de Ingreso: abril-2013
Ubicación: bogota
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Subir imagen sin recargar

Cita:
Iniciado por jonni09lo Ver Mensaje
Usa este [URL="http://www.malsup.com/jquery/form/"]plugin[/URL] ya que solo con ajax no puedes subir archivos

Saludos
Vale gracias por la la info, voy a intentar con ese codigo.
  #5 (permalink)  
Antiguo 19/06/2013, 21:20
 
Fecha de Ingreso: abril-2013
Ubicación: bogota
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Subir imagen sin recargar

Cita:
Iniciado por Nemutagk Ver Mensaje
Te das cuenta que estas en un foro de PHP?, todo lo que estas haciendo es en javascript, publica en el foro adecuado!

Eso jamas funcionará, no se de donde has sacado dicho código, pero no puedes enviar un archivo como lo estas haciendo, en todo caso primero debes leer el archivo con javascript y obtener el binario y luego pasar el binario al objeto ajax para ser subido, el problema es que no se puede hacer en todos los navegadores ya que necesitas 2 objetos (clases) propias de HTML 5 para lograrlo...

Busca información sobre FileReader() y FormData() para poder realizar un upload vía ajax, por ultimo, ten en cuenta que ambas clases no son soportadas aún por la mayoría de navegadores...
Gracias por la correcion, el codigo yo lo fui creando a base de lo que sabia, se que se pueden subir imagenes y archivos a php, ya lo he hecho, solo queria que subiera sin tener que recargar la pagina, para esto use jquery, que por lo que veo use mal. Sin embargo muchas gracias, y voy a intentar lo de las dos clases.
  #6 (permalink)  
Antiguo 19/06/2013, 22:24
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Subir imagen sin recargar

olle amigo estas debuenas ja ja aj por que por ajax si se puede ahcer pues no precisamente ajax pero es javascript (es como lo mismo). Bueno te voy a subri un archivo donde esta como subirlo y como recivirlo bueno hay dos index e index1
tu prueba cual te sirve

http://www.mediafire.com/download/a7...uadm/Upload.7z

lsitos ese es
  #7 (permalink)  
Antiguo 20/06/2013, 06:12
 
Fecha de Ingreso: abril-2013
Ubicación: bogota
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Subir imagen sin recargar

Cita:
Iniciado por sonickseven Ver Mensaje
olle amigo estas debuenas ja ja aj por que por ajax si se puede ahcer pues no precisamente ajax pero es javascript (es como lo mismo). Bueno te voy a subri un archivo donde esta como subirlo y como recivirlo bueno hay dos index e index1
tu prueba cual te sirve

[url]http://www.mediafire.com/download/a7j45ddj2xzuadm/Upload.7z[/url]

lsitos ese es
Vale muchisimas gracias, este codigo me sirvio bastante, lo cambie solo para que me subiera una imagen ya que era eso lo que queria, sin embargo fue un gran aporte muchas gracias :D
  #8 (permalink)  
Antiguo 20/06/2013, 06:13
 
Fecha de Ingreso: abril-2013
Ubicación: bogota
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Subir imagen sin recargar

Cita:
Iniciado por oskarczo Ver Mensaje
Vale gracias por la la info, voy a intentar con ese codigo.
EL plugin me sirvio, gracias es mas grafico y se puede implemtentar para varios archivos, gracias por la info de nuevo :P

Etiquetas: html, jquery, 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 07:44.