justamente... estoy haciendo eso para una página que me encomendaron y más o menos el código es el siguiente:
HTML:
<form action="muy largo" method="post" name="agregarimagen" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="250000"> <input name="nombreimagen" type="file" accept="image/jpeg" size="70"> <p><input class="boton" name="agregar" value="Agregar" type="submit"></p>
lo que no tienes que olvidar de esta parte es
enctype="multipart/form-data"accept es solo soportado por algunos exploradores
PHP:
//Obtenemos datos del archivo enviado...
$imagen = $_FILES('nombreimagen');
if(!$imagen)
return ShowError("No se ha Encontrado la Imagen Solicitada.");
//Verificamos datos...
if(($imagen['tmp_name']="")||($imagen['name']=="")||(!$imagen['size']))
return ShowError("No se ha Especificado el Nombre de la Imagen.");
//Verificamos tamaño
if($imagen['size'] > 250000)
return ShowError("La Imagen es demasiado grande, por favor reduzca su tamaño.");
//Verificamos Tipo...
if(($imagen['type'] == 'image/jpeg')||($imagen['type'] == 'image/pjpeg')){
//Comprobamos exista el archivo temporal en el servidor...
//(NOTA: desconozco porqué no funciona $imagen['tmp_name'])
$carpeta = "Imagenes".date("Y"); //Si no existe la carpeta intentamos crearla...
return ShowError("No se ha podido encontrar/crear la carpeta destino.");
//generamos nombre de archivo (no utilizaremos el enviado)
$nombrearchivo="imgn".$numeroimagen.".jpg";
$nuevaimagen = "$carpeta/$nombrearchivo";
$nombrearchivo="imgn".(++$numeroimagen).".jpg";
$nuevaimagen = "$carpeta/$nombrearchivo";
}
//Si todo Ocurrió Correctamente subimos la imagen
//(NOTA: desconozco porqué no funciona $imagen['tmp_name'])
return ShowError("Lo siento. No se ha Podido Subir la Imagen.");
}else
return ShowError("No se ha encontrado el archivo temporal.<br/>Esto puede deberse a que el archivo enviado es demasiado grande.");
}else
return ShowError("Tipo de archivo incorrecto.");
//Acá vendría el código todo OK
Cave aclarar que algunas variables (cuando genero el nombre del archivo) las obtengo de la base de datos, (hago una referencia en base de datos para que sea más sencillo eliminarlas si no las necesito más), pero podrías obtenerlas por otros métodos...
PD: es para PHP 5, en otras versiones es distinto
S2