Este es el formulario
Código PHP:
<form action="prueba.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<span class="Estilo2"><strong>Nombre</strong> <span class="Estilo1">(Opcional)</span></span> <br />
<input name="nombre" type="text" id="archivo" class="file" style="width:150px"><br /><br />
<strong>Archivo</strong> <br />
<input name="archivo" type="file" id="archivo" class="file" style="width:150px"><br /><br />
<strong>Tamaño</strong> <br />
<br /><br />
<select name="nuevo_tamano">
<option value="1" selected="selected">Dejar tamaño original</option>
<option value="2">100x75 (Avatar)</option>
<option value="3">150x112 (Vista previa)</option>
<option value="4">250x250 (Vista previa)</option>
<option value="5" selected>450x450 (Para Foros, Blogs y Spaces!)</option>
<option value="6">640x480 (Para mensaje en foros)</option>
<option value="7">800x600 (monitor de 15")</option>
<option value="8">1024x768 (monitor de 17")</option>
<option value="9">1280x1024 (monitor de 19")</option>
</select>
<br /><br />
<input name="boton" id="boton" class="boton" type="submit" value="Subir Imagen!" />
</form>
Código PHP:
if(isset($_POST['boton'])){
$tipo = $_FILES['archivo']['type'];
$tamaño = $_FILES['archivo']['size'];
$nombre = $_POST['nombre'];
$nuevo_tamano = $_POST['nuevo_tamano'];
if($nuevo_tamano>1){
function redimensionar_imagen($imagen, $nombre_imagen_asociada)
{
//indicamos el directorio donde se van a colgar las imágenes
$directorio = ".";
//establecemos los límites de ancho y alto
if($nuevo_tamano==2){
$nuevo_ancho = 100 ;
$nuevo_alto = 75 ;
}
elseif($nuevo_tamano==3){
$nuevo_ancho = 150 ;
$nuevo_alto = 112 ;
}
elseif($nuevo_tamano==4){
$nuevo_ancho = 250 ;
$nuevo_alto = 250 ;
}
elseif($nuevo_tamano==5){
$nuevo_ancho = 450 ;
$nuevo_alto = 450 ;
}
elseif($nuevo_tamano==6){
$nuevo_ancho = 640 ;
$nuevo_alto = 480 ;
}
elseif($nuevo_tamano==7){
$nuevo_ancho = 800 ;
$nuevo_alto = 600 ;
}
elseif($nuevo_tamano==8){
$nuevo_ancho = 1024 ;
$nuevo_alto = 768 ;
}
else{
$nuevo_ancho = 1280 ;
$nuevo_alto = 1024 ;
}
//Recojo información de la imágen
$info_imagen = getimagesize($imagen);
$alto = $info_imagen[1];
$ancho = $info_imagen[0];
$tipo_imagen = $info_imagen[2];
// dependiendo del tipo de imagen tengo que usar diferentes funciones
switch ($tipo_imagen) {
case 1: //si es gif …
$imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto);
$imagen_vieja = imagecreatefromgif($imagen);
//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;
case 2: //si es jpeg …
$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
$imagen_vieja = imagecreatefromjpeg($imagen);
//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;
case 3: //si es png …
$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
$imagen_vieja = imagecreatefrompng($imagen);
//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;
}
return true; //si todo ha ido bien devuelve true
}
if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
if($HTTP_POST_FILES['archivo']['size'] < 1000000) {
if($tipo=="image/gif" || $tipo=="image/jpeg" || $tipo=="image/png" || $tipo=="image/jpg" || $tipo=="image/pjpeg" || $tipo=="image/x-png") {
copy($_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);
$usuario = $mostrar[username];
$info = pathinfo($HTTP_POST_FILES['archivo']['name']);
$aleatorio = substr(md5(uniqid(rand())),0,10).".".strtolower($info['extension']);
$imagen = $usuario."_".$aleatorio;
redimensionar_imagen($HTTP_POST_FILES['archivo']['name'], $imagen);
$dia = date ("d");
$mes = date ("m");
$ano = date ("Y");
$fecha = $dia."-".$mes."-".$ano;
$query = "INSERT INTO imagenes (username, nombre, imagen, fecha) VALUES('$usuario', '$nombre', '$imagen', '$fecha')";
mysql_query($query) or die(mysql_error());
$subio = true;
}
}
}
}else{
if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
if($HTTP_POST_FILES['archivo']['size'] < 1000000) {
if($tipo=="image/gif" || $tipo=="image/jpeg" || $tipo=="image/png" || $tipo=="image/jpg" || $tipo=="image/pjpeg" || $tipo=="image/x-png") {
$usuario = $mostrar[username];
$info = pathinfo($_FILES['archivo']['name']);
$aleatorio = substr(md5(uniqid(rand())),0,10).".".strtolower($info['extension']);
$imagen = $usuario."_".$aleatorio;
copy($_FILES['archivo']['tmp_name'], $imagen);
$dia = date ("d");
$mes = date ("m");
$ano = date ("Y");
$fecha = $dia."-".$mes."-".$ano;
$query = "INSERT INTO imagenes (username, nombre, imagen, fecha) VALUES('$usuario', '$nombre', '$imagen', '$fecha')";
mysql_query($query) or die(mysql_error());
$subio = true;
}
}
}
}
if($subio) {
$ultimo = mysql_query("SELECT id,imagen FROM hostimage_imagenes WHERE imagen = '$imagen'") or die("Error: ".mysql_error());
$ver = mysql_fetch_array($ultimo);
echo $imagen;
} else {
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="150"><img src="imagenes/error.jpg"></td>
<td width="*">El archivo no se pudo enviar. Recuerda que debe ser un archivo JPG, GIF o PNG y el tamaño no puede exceder 1MB</td>
</tr>
</table>';
}
}