Comunidad de diseño web y desarrollo en internet online

Upload fichero con Ajax

Citar            
MensajeEscrito el 27 Sep 2007 12:28 pm
Hola, estoy intentando subir un fichero al servidor con Ajax. He oído que no se puede, pero lo programé en mi servidor local (APACHE: 2.2.4 Win32, PHP: 5.2.3) y funciona perfectamente.
Sin embargo cuando lo subo al servidor externo (APACHE: 2.2, PHP: 5.1.2) no funciona.
¿Alguien sabe por qué ocurre esto?

Cod. HTML

Código :

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function nuevoAjax(){ 
   var xmlhttp=false;
   try{
      xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
   }
   catch(e){
      try{
         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(E){
         if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
      }
   }
   return xmlhttp; 
}// Fin function nuevoAjax

function insertarProducto (){
   ajax=nuevoAjax();
   ajax.open("POST", "prueba.php", true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   ajax.send("foto=" + document.formulario.foto.value);

   ajax.onreadystatechange=function() {
      if (ajax.readyState==4) {
         document.getElementById("cuerpo").innerHTML = ajax.responseText;
      }
   }
}
</script>
</head>

<body>
<form enctype='multipart/form-data' name="formulario">
   <table>
      <tr>
         <td><p>Imagen&nbsp;</p></td>
         <td><input name='foto' type='file'></td>
            <td><input name='insertar' type='button' onClick="insertarProducto()" value='Insertar'></td>
      </tr>
   </table>
    <div id="cuerpo"></div>
</form>
</body>


Código PHP:

Código :

<?php
$foto = utf8_decode($_POST[foto]);
if(copy($foto, "foto.jpg")) {
   echo "Copiado";
}
else echo "Error";
?>

Por jlsandoval

29 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Sep 2007 05:01 am
Hace un tiempo lo inetenté... al final lo hice a punta de simple php; sin embargo, recuerdo haber leído en google algo sobre subir archivos con ajax.

Por Pedro

BOFH

3017 de clabLevel

3 tutoriales
6 articulos

  Bastard Operators From Hell

Honduras

firefox
Citar            
MensajeEscrito el 28 Sep 2007 11:31 am

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 30 Sep 2007 09:45 pm
Hola lo que ocurre es que te funciona localmente por que copias la ruta de la foto, esa ruta ya esta en tu maquina local, y en verdad con esta linea

ajax.send("foto=" + document.formulario.foto.value);

lo que haces es enviar la ruta de tu foto, ruta que ya existe en tu maquina, ok? o sea que no subes o haces el upload comun que se hace con php, yo lo intente y no se puede por ajax, ahora cuando lo pruebas en un servidor externo como solo envias la ruta del archivo y luego tratas de copiar

copy($foto, "foto.jpg")

no te resulta por que en realidad no subiste nada, solo le mandaste una cadena(ruta del archivo), cuando se sube un archivo se guarda en los temporales,ej c:\windows\temp\xxxx.tmp , ok espero que lo hayas entendido...
saludos..

Por coolf

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 May 2008 04:25 am
Retomando el hilo... existirá una manera relativamente sencilla y mas o menos entendible para alguien con 2/5 de neurona para subir archivos mediante ajax.? especificamente xajax... :?

no quisiera la solución "maquillada" que anda por allí...

obvio, tampoco voy a poner en riesgo mi salud mental... procuraré no llegar a las sobre dosis ni a cortarme las venas sino descubro el modo de hacer el fulano upload con ajax.

Gracias...

Por mauril26

161 de clabLevel



 

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.