Cita: en caso de que lo hiciera con
$tipo = $_FILES['name']['type']
como sería la comprobación para saber si son jpeg,jpg,png,gif.
El formato mime es una cadena tipo "algo/algo" .. Para imagenes por ejemplo contiene exactamente "jpg": (image/jpg), "gif": (image/gif) .. etc. Así que sólo tienes que usar las funciones de cadenas de PHP para buscar esa cadena en tu cadena origen ($_FILE['archivo']['type']) o simplemente comparas toda la cadena del formato MIME que obtienes ahí .. (puedes usar arrays en un in_array() para agilizar el tema).
Tienes ejemplos en los comentarios de los usuarios de:
http://www.php.net/manual/en/features.file-upload.php
[quote]La otra duda que tengo es como obtener el tamaño de la imagen. Se que se puede hacer con GD pero la duda mia esta a la hora de crear la imagen. [quote]
Tienes la función getimagesize() que NO es de las funciones GD para obtener el dato de ancho x alto de tu imagen (en los formatos MIME de imagen que indica):
http://www.php.net/manual/en/function.getimagesize.php
A esa función se le dá la ruta del archivo "físico" (leer más abajo donde lo tienes si haces el uplodad HTTP .. )
Cita: Supongamos que ya tengo el tipo y que es jpeg o jpg. Bien ahora lo que haria sería esto:
Código PHP:
$imagen = imagecreatefromjpeg($imagen);
pergunta: ¿pero esa imagen no debería estar de forma física en algun lado?
pues de esa forma donde yo obtengo el tipo viene de un formulario y no se si GD pueda crear imagenes de algo que no existe. En caso de que haya alguna alternativa me podrías explicar un poco como resuelvo estos dos problemas??
La imgen "física" si dices que la imagen la suben por HTTP desde tu formulario ... la tienes en $_FILE['archivo']['tmp_name'] .. puedes usar eso directamente (si la configuración y "safe mode" entre otros te deja) o bien tendrás que moverla hacia algún directorio de tu sitio de forma témporal (move_uploaded_file() ... ) (si es que no la necesitas más) para; terminado ese proceso .. la borras (unlink()) ..
Por lo demás .. las "GD" pueden crear imagenes desde cero sin ningúna imagen de referencia .. para eso está el comando imagecreate() que es donde (junto con otras funcoines) empiezas a crear la "mascara" de la imgen ..
Revisa las funciones GD:
www.php.net/gd
Un saludo,