Finalmente opté por otra opción :
Subir el archivo con un evento onchange en el input file a través de AJAX + PHP.
Pero he tenido problemas ya que formData.append("fileup", file.files[0]); no toma los datos del jpeg que se intenta subir desde input type="file"
entiendo que con formData.append("a", B) :
a : es el nombre de la variable que envio
B : es el valor de la variable que envío
pero como les comenté no me funciona
comparto el JS AJAX que entrega un ejemplo web y que estoy ocupando:
Código HTML:
function nuevoAjax(){
var xmlhttp=false;
try{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
catch(E) { xmlhttp=false; }
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined'){ xmlhttp=new XMLHttpRequest(); }
return xmlhttp;
}
function uploaded(){
var file = document.getElementById("imageB");
/* Create a FormData instance */
var formData = new FormData();
/* Add the file */
formData.append("fileup", file.files[0]);
alert("vemoas po loco");
var ajax=nuevoAjax();
ajax.open("post", "../../AJAX/img-carga.php", true);
ajax.setRequestHeader("Content-Type", "multipart/form-data");
ajax.send(formData); /* Send to server */
}
/* Check the response status */
ajax.onreadystatechange = function(){
if (ajax.readyState == 4 && ajax.status == 200){
alert(ajax.statusText);
}
}
y mi formulario:
<input type="file" name="imageB" id="imageB" onchange="uploaded()" title="Seleccionar archivo desde su PC">
y mi PHP:
Código PHP:
if (!empty($_FILES['fileup']['name'])){
$img_tmp = $_FILES['fileup']['tmp_name'];
$img_fp = fopen($img_tmp, "rb");
$imagen = fread($img_fp, filesize($img_tmp));
$imagen = addslashes($imagen);
fclose($img_fp);
@unlink($img_tmp);
}else{$imagen = "";}
$sql = "UPDATE visualiza SET img='$imagen' WHERE id='1'";
mysql_query($sql) or die (mysql_error());
mysql_query("OPTIMIZE TABLE visualiza");
Como les comenté mi problema está en el JS ... que puede ser el error ?