Hola tengo un formulario para subir imagenes a mysql
Código HTML:
<form enctype="multipart/form-data" action="upload.php" method="post" name="form1">
<table align="center">
<tr>
<td>Archivo</td>
<td><input type="file" name="miArchivo" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="UPLOAD" /></td>
</tr>
</table>
</form>
el archivo que hace la insert es
upload.php Código PHP:
<?php
require_once('lib/conexion2.php'); //importamos el archivo de conexión
//Comienzo de lectura del archivo
/*
Comprovamos que se aya pasado un parametro: isset($_FILES['miArchivo'])
Comprovamos que el parametro no esta vacio isset($_FILES['miArchivo'] !='')
*/
if((isset($_FILES['miArchivo'])) && ($_FILES['miArchivo'] !='')){
$file = $_FILES['miArchivo']; //Asignamos el contenido del parametro a una variable para su mejor manejo
$temName = $file['tmp_name']; //Obtenemos el directorio temporal en donde se ha almacenado el archivo;
$fileName = $file['name']; //Obtenemos el nombre del archivo
$fileExtension = substr(strrchr($fileName, '.'), 1); //Obtenemos la extensión del archivo.
//Comenzamos a extraer la información del archivo
$fp = fopen($temName, "rb");//abrimos el archivo con permiso de lectura
$contenido = fread($fp, filesize($temName));//leemos el contenido del archivo
//Una vez leido el archivo se obtiene un string con caracteres especiales.
$contenido = addslashes($contenido);//se escapan los caracteres especiales
fclose($fp);//Cerramos el archivo
//Insertando los datos
//Creando el query
$query = "INSERT INTO img_articulo (fileName ,extension ,binario ) VALUES ('$fileName' ,'$fileExtension' ,'$contenido' )";
//$query = "INSERT INTO img_articulo (fileName ,extension ,binario ) VALUES ('gkj' ,'gh' ,'ghh' )";
//Ejecutando el Query
$result = mysql_query($query);
if(!$result) echo "dfs";
mysql_close($conexion);//cerramos la conexión
}
?>
Hasta aqui todo bien guarda la imagen en la tabla.
a la hora de sacar la imagen me muestra una "X"
verimpagen.php Código PHP:
<?php
require_once('lib/conexion2.php'); //importamos el archivo de conexión
//Funcion para recuperar el mime
function fObtenerMime($wfParamCadena){//creamos una función que recibira un parametro en este caso la extensión del archivo
$fsExtension = $wfParamCadena;
if ($fsExtension =='bmp'){ $mime = 'image/bmp'; }
if ($fsExtension =='gif' ){ $mime ='image/gif' ; }
if ($fsExtension =='jpe' ){ $mime ='image/jpeg' ; }
if ($fsExtension =='jpeg'){ $mime = 'image/jpeg' ; }
if ($fsExtension =='jpg' ){ $mime ='image/jpeg'; }
if ($fsExtension =='png' ){ $mime = 'image/png'; }
return $mime;//en base a su extenxión la function retornara un tipo de mime
}
$idImagen = $_GET['id']; //Recuperamos el prametro que contiene el id de la imagen que vamos a consultar.
$result = mysql_query("Select * from img_articulo where idImagen = $idImagen");//Realizamos una consulta a la imagen seleccionada
$imagen = mysql_fetch_assoc($result);//recuperamos los registros de la consulta
$mime = fObtenerMime($imagen['extension']);//Obtenemos el mime del archivo.
$contenido = $imagen['binario'];//Obtenemos el contenido almacenado en el campo Binario.
header("Content-type:$mime");//le indicamos al navegador que tipo de información mostraremos.
print $contenido; //Imprimimos el contenido.
mysql_close($conexion);//cerramos la conexión
?>
Es como si el binario de la imagen estuviera mal...
alguna ayudita??