Creo que esto es lo que buscas:
Codigo del formulario:
<form name="poner_anuncio" method="post" action="<? echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
Imagen: <input name="Imagen" type="file">
<input type="submit" value="Enviar">
</form>
Al recibir el formulario en:
$HTTP_POST_FILES['Imagen']['name'] tienes el nombre de la imagen
$HTTP_POST_FILES['Imagen']['type'] tienes la extension
$HTTP_POST_FILES['Imagen']['size'] el tamaño en bytes
Luego para subir la imagen usas esto:
move_uploaded_file($HTTP_POST_FILES['Imagen']['tmp_name'], "imagenes/".$HTTP_POST_FILES['Imagen']['name']);
Esta instruccion puedes ponerla dentro de un if:
if( move_uploaded_file($HTTP_POST_FILES['Imagen']['tmp_name'], "imagenes/".$HTTP_POST_FILES['Imagen']['name']) ){
echo "Imagen subida.";
}else{
echo "Imagen no subida.";
}
¿Donde se guarda la imagen?
Pues si el codigo esta en
www.dominio.com/subir/subir.php la imagen se sube en
www.dominio.com/subir/imagenes/
¿Y si quiero subirla a
www.dominio.com/imagenes/ pero el codigo esta en
www.dominio.com/subir/subir.php?
Pues en lugar de move_uploaded_file($HTTP_POST_FILES['Imagen']['tmp_name'], "imagenes/".$HTTP_POST_FILES['Imagen']['name']) debes poner move_uploaded_file($HTTP_POST_FILES['Imagen']['tmp_name'], "../imagenes/".$HTTP_POST_FILES['Imagen']['name'])
La carpeta a la que subes las imagenes debe tener permisos de escritura, sino dara error.
Para guardarla en la db, creas un campo con el nombre y guardas el contenido de $HTTP_POST_FILES['Imagen']['name'] y para luego mostrarla pues seria (suponiendo que ya has leido desde la db el campo que tiene el nombre de la imagen y esta guardado en la variable $imagen):
<img src="www.dominio.com/imagenes/$imagen">
Suerte!!