Hola a todos en el Foro:
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:
<!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>
Ahora el archivo foto.js
Código:
ingresa_foto = function() {
var pars = Form.serialize($('fotex'));
alert(pars);
new Ajax.Updater("recibe", "recibefoto.php", {method: 'post', parameters: pars});
}
y el archivo recibefoto.php
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);*/
?>
Ojala alguien pueda ayudarme con esto.
Chauz