Necesito una ayudita en lo siguiente:
Estoy tratando de enviar una imagen jpg desde un formulario a un archivo php mediante Ajax.Updater. El asunto esta en que al serializar el formulario solo toma los campos de texto y no el campo "file". Esto provoca que no pueda trabajar la recepcion desde php.
Les dejo un codigo de ejemplo que estoy rpobando para que la idea sea mejor
Código:
Ahora el archivo foto.js<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title> New Document </title> <script type="text/javascript" src="js/prototype/prototype.js" language="JavaScript"></script> <script type="text/javascript" src="js/foto.js" language="JavaScript"></script> </head> <body> <form id = "fotex" enctype="multipart/form-data" > <label>Foto</label> <input type = "file" name = "vol_foto" id = "vol_foto" /><br /> <input type = "text" name = "algo" id = "algo" /><br /> <input type = "button" value = "enviar" onclick = "ingresa_foto();"/><br /> </form> <div id = "recibe"></div> </body> </html>
Código:
y el archivo recibefoto.phpingresa_foto = function() { var pars = Form.serialize($('fotex')); alert(pars); new Ajax.Updater("recibe", "recibefoto.php", {method: 'post', parameters: pars}); }
Código PHP:
<?php
include('registro/conecta.php');
$tipo = $_POST['algo'];
$vol_foto = $_FILES['vol_foto'];
$vol_foto_tmp = $_FILES['vol_foto']['tmp_name'];
$vol_foto_tipo = $_FILES['vol_foto']['type'];
//esto es para probar si es que estaba recibiendo el archivo, pero nada
echo $tipo." ";
echo $vol_foto_tmp." ";
echo $vol_foto_tipo." ";
echo $tipo." ";
// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
esto es para ingresar a la BD lo comente ya que no hace nada
/*$binario_contenido = addslashes(fread(fopen($vol_foto_tmp, "rb"), filesize($vol_foto_tmp)));
$enlace = conectar();
$sql = "insert into foto values('$tipo', '$binario_contenido')";
$consulta = consultar($sql);
//if(!$consulta) echo "error al ingresar";
//else echo "ingrwso realizado";
$sql = "select foto from foto where id = '1'";
$consulta = consultar($sql);
$res = mysql_fetch_array($consulta);
$foto = $res['foto'];
header("Content-Type: image/jpg");
echo $foto;
desconectar($enlace);*/
?>
Chauz