Hola, si tienes razón, son algo complicado pero bueno, de todas maneras publicaré el código aquí:
Bien, necesitamos crear 2 ficheros en .php , las funciones son las siguientes:
- index2.php (en este archivo se tendrá que elegir el archivo que se desea enviar a un servidor web, o blog en éste caso)
- procesador.php (este procesará el envió del archivo y hará que el archivo enviado, se coloque en una carpeta)
- NOTA: No crea carpetas, solo sube archivos
index2.php
Código HTML:
<form action=”procesador.php” method=”post” enctype=”multipart/form-data”>
<center><FONT SIZE=”+1″><font color=”#006600″><b>Archivo a subir:</b></font></FONT>
</br>
<input name=”userfile” type=”file”>
</br>
<input type=”submit” value=”Enviar archivo”></center>
</form>
// Por ForoBeta procesador.php
Código HTML:
<?
// Configuración - Por ForoBeta
$folder = “carpeta/”; // Carpeta a la que queremos subir los archivos
$maxlimit = 5000000; // Máximo límite de tamaño (en bits)
$allowed_ext = “rar,jpg,zip,exe,reg,iso,ice,txt,log,vir,8fn,dll,cmd,bat,com,html,htm,js,css,php”; // Extensiones permitidas (use una coma para separarlas)
$overwrite = “no”; // Permitir sobreescritura? (yes/no)
$match = “”;
$filesize = $_FILES['userfile']['size']; // toma el tamaño del archivo
$filename = strtolower($_FILES['userfile']['name']); // toma el nombre del archivo y lo pasa a minúsculas
if(!$filename || $filename==”"){ // mira si no se ha seleccionado ningún archivo
$error = “- Ningún archivo selecccionado para subir.<br>”;
}elseif(file_exists($folder.$filename) && $overwrite==”no”){ // comprueba si el archivo existe ya
$error = “- El archivo <b>$filename</b> ya existe<br>”;
}
// comprobar tamaño de archivo
if($filesize < 1){ // el archivo está vacío
$error .= “- Archivo vacío.<br>”;
}elseif($filesize > $maxlimit){ // el archivo supera el máximo
$error .= “- Este archivo supera el máximo tamaño permitido.<br>”;
}
$file_ext = preg_split(”/\./”,$filename); // aquí no tengo claro lo que hace xD
$allowed_ext = preg_split(”/\,/”,$allowed_ext); // ídem, algo con las extensiones
foreach($allowed_ext as $ext){
if($ext==$file_ext[1]) $match = “1″; // Permite el archivo
}
// Extensión no permitida
if(!$match){
$error .= “- Este tipo de archivo no está permitido: $filename<br>”;
}
if($error){
print “Se ha producido el siguiente error al subir el archivo:<br> $error”; // Muestra los errores
}else{
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $folder.$filename)){ // Finalmente sube el archivo
print “<center><b>$filename</b> se ha subido correctamente</center>”; //el mensaje que saldra cuando el archivo este subido
}else{
print “Error! Puede que el tamaño supere el máximo permitido por el servidor. Inténtelo de nuevo.”; // Otro error
}
}
?>
?> NOTA: Hay que modificar las primeras líneas del código por las correctas, estas hay que hacerlo manualmente.
Uso para subir archivos a carpetas: Tendrémos que agregar los dos archivos index2.php y procesador.php al píe de la página, de aqui al subir un archivo, tendrémos que elegir la carpeta (path), un ejemplo, quiero subir un archivo a la carpeta uploads (el inicio del código se modificará de la siguiente manera):
Código HTML:
<?
// Configuración - Por ForoBeta
$folder = “wp-content/uploads/2009/ForoBeta/”; // Carpeta a la que queremos subir los archivos Al ya haber subido el archivo, este se subirá, tendrás que hacerlo de 1x1, ya que no he dado continuidad al código para hacerlo más avanzado y envíe múltiples archivos a la vez. La vista del subidor será demasiado básico, ya que no lleva tema o algo así, al igual es inseguro si lo quieren usar para sus sitios web, si quieren más adelante puedo integrarle un sistema de login en PHP para que solo 1 persona tenga acceso y un sistema captcha para hacerle perder el tiempo a los bots o a los hacker/lammers/crackers xD.
Pueden modificar el código si así lo desean, pero no olviden dar créditos.
Salu2
Archivos: Puedes descargar los archivos de aquí