Upload de imagénes (subidas de archivos por formulario)
Posted on Julio 16th, 2010 in PHP | No Comments »
En este supuesto… un formulario envía una imagen.
- El formulario tiene un campo de envío de archivo con nombre “imagen”
- El formulario tiene en su etiqueta method=”post” enctype=”multipart/form-data”
- El formulario envía a una página o recarga la misma pero al final tiene &send=ok en su action.
if($_GET['send']=='ok') // está enviando el formulario { //carpeta donde se subirán las fotos // RECORDAR DE PONERLE PERMISOS 777 A ESTA CARPETA EN VISTA REMOTA $carpeta="img"; // Esto es un filtro que le hacemos para que no suban cualquier archivo // VERIFICA QUE LA IMAGEN SEA jpeg, jpg, pjpg, gif, png o x-png if(is_uploaded_file($_FILES['imagen']['tmp_name'])) { // time() lo que hace es mostrar los segundos desde 1970 que han transcurrido, asi // se pueden nombrar las fotos sin que sean de igual nombre. // lo de 'imagen' es como se llama en el formulario, lo que nos enviará la imagen. if($_FILES['imagen']['type'] == "image/jpeg") { $laFoto = time().'.jpg'; } elseif ($_FILES['imagen']['type'] == "image/jpg") { $laFoto = time().'.jpg'; } elseif ($_FILES['imagen']['type'] == "image/pjpeg") { $laFoto = time().'.jpg'; } elseif ($_FILES['imagen']['type'] == "image/gif") { $laFoto = time().'.gif'; } elseif ($_FILES['imagen']['type'] == "image/png") { $laFoto = time().'.png'; } elseif ($_FILES['imagen']['type'] == "image/x-png") { $laFoto = time().'.png'; } else { $laFoto =""; // sino es ninguno de esos tipo de archivos que ponga $lafoto vacio. echo "Formato no permitido para nuestra web"; } } if($laFoto != '') { //la imagen "siempre" se sube, lo que lo pone en una carpeta temporal //lo que hacemos ahora es mover el archivo subido a nuestra carpeta. if(move_uploaded_file($_FILES['imagen']['tmp_name'],$carpeta."/".$laFoto)) { // insert del mysql } else { echo "no pudo mover la foto a esa carpeta!"; } } }