Claro !!!
Este es el codigo.
Código PHP:
//Maximo tamaño en bytes
$MAX_SIZE = 3000000000000;
//Array con extensiones
$FILE_EXTS = array('.wmv');
//URL
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
//Directorio de subida
$upload_dir = "archivos/";
if (!is_dir($upload_dir)) {
if (!mkdir($upload_dir))
die ("El directorio no existe o no puede crearse");
if (!chmod($upload_dir,0777))
die ("Fallo el cambio de permisos a 0777.");
}
//Aca hacemos un log.txt con algunos datos como fecha e IP
if ($_FILES['userfile']) {
$archivo_log = fopen("log.txt","a");
fwrite($archivo_log,date("Y.m.d h:i:s")." Subida - $_SERVER[REMOTE_ADDR] "
.$_FILES['userfile']['name']." "
.$_FILES['userfile']['type']."\n");
fclose ($archivo_log);
$file_type = $_FILES['userfile']['type'];
$file_name = $_FILES['userfile']['name'];
$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));
//Chequeo que los archivos no excedan el limite
if ( $_FILES['userfile']['size'] > $MAX_SIZE)
$mensaje = "El archivo debe pesar menos que 200KB.";
//Chequeo la extension
else if (!in_array($file_ext, $FILE_EXTS))
$mensaje = "Lo siento, archivos $file_ext no estan permitidos.";
else
$mensaje = do_upload($upload_dir, $upload_url);
print "<script>window.location.href='$url?mensaje=$mensaje'</script>";
}
else if (!$_FILES['userfile']);
else
$mensaje = "Archivo invalido.";
//LISTA DE ARCHIVOS
$handle=opendir($upload_dir);
$filelist = "";
while ($file = readdir($handle)) {
if(!is_dir($file) && !is_link($file)) {
$filelist .= "<a href='$upload_dir$file'>".$file."</a>";
$filelist .= "<sub><small><font color=grey> ".date("d-m H:i", filemtime($upload_dir.$file))
."</font></small></sub>";
$filelist .="<br>";
}
}
//Aca hacemos el upload
function do_upload($upload_dir, $upload_url) {
$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
//Aca reemplazo saco las comillas y barras de los nombres
$file_name = str_replace("\\","",$file_name);
$file_name = str_replace("'","",$file_name);
//Aca reemplazo los espacios del nombre por guion bajo
$file_name = str_replace(" ","_",$file_name);
$file_path = $upload_dir.$file_name;
//Chequeo el nombre del archivo
if ( $file_name =="") {
$mensaje = "Nombre invalido o vacio";
return $mensaje;
}
$resultado = move_uploaded_file($temp_name, $file_path);
if (!chmod($file_path,0777))
$mensaje = "Fallo el cambio de permisos a 0777.";
else
$mensaje = ($resultado)?"$file_name subido con exito." :
"Hubo un error al subir el archivo.";
return $mensaje;
}
?>