Antes de todo se debe de tener instalada la libreria GD,si no la tenemos activada solo tenemos que modificar el archivo php.ini que se encuentra en C:\Windows (puede variar según tu versión de Windows), y agregar la línea extension=php_gd2.dll en la sección "Dynamic Extensions". El archivo php_gd2.dll debe estar en la carpeta "extensions" dentro del directorio donde instalaste el php, por ejemplo "C:\php\extensions".
El formulario de upload y el script php está en una sola página, la nombré como subida.php:
Código
<?php // Verificamos que el formulario no ha sido enviado aun if($postback){ // Nivel de errores // Constantes # Altura de el thumbnail en píxeles # Nombre del archivo temporal del thumbnail // define("NAMETHUMB", "c:/windows/temp/thumbtemp"); y te olvidas de los problemas de permisos # Servidor de base de datos # nombre de la base de datos # Usuario de base de datos # Password de base de datos // Mime types permitidos // Variables de la foto $name = $_FILES["foto"]["name"]; $type = $_FILES["foto"]["type"]; $tmp_name = $_FILES["foto"]["tmp_name"]; $size = $_FILES["foto"]["size"]; // Verificamos si el archivo es una imagen válida // Creando el thumbnail switch($type) { case $mimetypes[0]: case $mimetypes[1]: break; case $mimetypes[2]: break; case $mimetypes[3]: break; } $ratio = ($datos[1]/ALTURA); switch($type) { case $mimetypes[0]: case $mimetypes[1]: break; case $mimetypes[2]: break; case $mimetypes[3]: break; } // Extrae los contenidos de las fotos # contenido de la foto original # contenido del thumbnail // Borra archivos temporales si es que existen // Guardamos todo en la base de datos #nombre de la foto $nombre = $_POST["nombre"]; $sql = "INSERT INTO tabla(nombre, foto, thumb, mime) VALUES ('$nombre', '$tfoto', '$tthumb', '$type')"; echo "Fotos guardadas"; } ?>
El Html
Código
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Imagen a Blob</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form name="frmimage" id="frmimage" method="post" Nombre: <input type="text" id="nombre" name="nombre" /><br /> Imagen: <input type="file" id="foto" name="foto" /><br /> <input type="submit" name="enviar" id="enviar" value="Guardar" /> </form> </body> </html> [code=sql]CREATE TABLE `tabla` ( `idfoto` int(3) NOT NULL AUTO_INCREMENT, `nombre` varchar(255) NOT NULL DEFAULT '', `foto` blob NOT NULL, `thumb` blob NOT NULL, `mime` varchar(40) NOT NULL DEFAULT '', PRIMARY KEY (`idfoto`) ) ;
Según el tipo MIME de la imagen, crearemos la miniatura con las funciones imagecreatefromjpeg(), imagecreatefromgif() o imagecreatefrompng().
La función imagecopyresized() crea la miniatura de la imagen, aunque también podemos utilizar imagecopyresampled().
Espero que les sirva de algo......
Saludos
[/code]