Hola Taringueros, este post está dedicado para la gente que le gusta la programacion, les cuento que este es mi primer uploader que hago, tal vez tenga un par de errores pero les aseguro que es seguro 

aqui les dejo mi codigo para que lo usen si quieren



aqui les dejo mi codigo para que lo usen si quieren


index.php
<?php
/*
Diseño BY unijempe ;)
*/
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>POO Upload.</title>
<link href="estilos.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="413" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="413" height="40" class="titulo">POO - PHP image upload</td>
</tr>
<tr>
<td class="text">Por favor seleccione el archivo a subir:</td>
</tr>
<tr>
<form action="upload.php" method="post" enctype="multipart/form-data">
<td class="text">
<input name="userfile" type="file" class="casilla" id="archivo" size="35" />
<input name="ss" type="submit" class="boton" id="enviar" value="Upload File" />
</form>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
<td class="infsub">
</td>
</tr>
</table>
</body>
</html>
class.upload.php
(Por si no entienden es POO)
<?php
class Upload{
public $file;
public $contentype;
public $perm;
public function Ext($file){
$this -> file = $file;
$ext = explode(".",strtolower($this->file));
$ext = $ext[count($ext)-1];
return $ext;
}
public function Move($f,$contentype){
$this -> contentype = $contentype;
@$this -> file = $f;
//die($this -> Ext($this -> file));
$this -> perm = array("jpg","gif","png");
if(is_array($this -> contentype)){
die("Error provocado por el usuario!");
}
if(!$this -> file){
die("Debes seleccionar al menos un archivo");
}
if(!in_array($this -> Ext($this -> file),$this -> perm)){
die("El formato es incorrecto, solo se admiten formatos como ".implode(",",$this -> perm));
}else{
$tmp_name = $this -> contentype;
$uploads_dir = "images/";
if(!is_dir($uploads_dir)){
die($uploads_dir." debe ser un directorio");
}
$names = md5(uniqid());
if(file_exists($uploads_dir.$names)){
die("Ya existe una imagen con ese nombre");
}
if(!move_uploaded_file($tmp_name, "$uploads_dir/".$names.".".$this -> Ext($this -> file)."")){
die("Hubo un error al subir el archivo...");
}else{
die('Archivo subido con exito! <br /> <img src="'.$uploads_dir.$names.".".$this -> Ext($this -> file).'" />');
}
}
}
}
upload.php
<?php
//print_r($_FILES);
require_once('class.upload.php');
$u = new Upload();
$f = trim($_FILES['userfile']['name']);
$u -> Move($f,$_FILES['userfile']['tmp_name']);
PD: Deben crear una carpeta llamada images
Suerte con sus uploads
