Esta funcioncita que hize es muy simple pero yo la uso cada que ocupo trabajar con archivos en php, incluso la puse en mi crypter online, y se las comparto por si la necesitan en algun binder o algun script online

Sube el archivo a determinada carpeta, con filtro de extencion

Código: Seleccionar todo

<?php
/*****************************************
 * Coded by linkgl                       *
 * 02/02/10                              *
 * [email protected]            *
 * sube archivos a carpeta determinada   *
 * con filtro de extencion               *
 * **************************************/ 
function xLoad($archivo,$carpeta,$extencion,$temp)//declaramos la funcion
{
  if(substr($archivo, strlen($archivo)-4, 4) != $extencion)//filtramos extencion
  {
    echo "Ud. Solo puede subir {$extencion}'s";//si la extencion es incorrecta lo mandamos a...  
  }
  else  //de lo contrario
  {
    if(move_uploaded_file($temp,$carpeta.$archivo))//subimos el archivo a la carpeta con el nombre dado
    {
      echo "Archivo cargado en {$carpeta}{$archivo}";//si todo va bien se acabo aqui
    }
    else //si no
    {
      echo "Ocurrio un error al cargar su fichero!"; //no se subio el arcihvo
      //este error pueda dar por falta de permisos chmod 777
    }
  }
} //cerramos nuestros corchetitos y nos vamos
?>
Ejemplocompleto de uso:

Código: Seleccionar todo

<?php
/*****************************************
 * Coded by linkgl                       *
 * 02/02/10                              *
 * [email protected]            *
 * sube archivos a carpeta determinada   *
 * con filtro de extencion               *
 * **************************************/ 

if(!isset($_GET['op']))
{
?>
<form action="?op=proc" method="post" enctype="multipart/form-data">
  <input type="file" name="archivo">
  <input type="submit" value="Cargar">
</form>
<?
}
else
{
function xLoad($archivo,$carpeta,$extencion,$temp)//declaramos la funcion
{
  if(substr($archivo, strlen($archivo)-4, 4) != $extencion)//filtramos extencion
  {
    echo "Ud. Solo puede subir {$extencion}'s";//si la extencion es incorrecta lo mandamos a...  
  }
  else  //de lo contrario
  {
    if(move_uploaded_file($temp,$carpeta.$archivo))//subimos el archivo a la carpeta con el nombre dado
    {
      echo "Archivo cargado en {$carpeta}{$archivo}";//si todo va bien se acabo aqui
    }
    else //si no
    {
      echo "Ocurrio un error al cargar su fichero!"; //no se subio el arcihvo
      //este error pueda dar por falta de permisos chmod 777
    }
  }
} //cerramos nuestros corchetitos y nos vamos


//uso
xLoad($_FILES['archivo']['name'],"archivos/",".jpg",$_FILES['archivo']['tmp_name']);
}
?>
//mHmm..
Buen aporte!

Una pregunta, da la casualidad que estaba haciendo pruebas con opendir y readdir
Con este codigo consigo listar el directorio "archivos" mediante hipervínculos, pero al clicar en los elementos de la lista los hipervínculos no van...

Código: Seleccionar todo

$dir = opendir("archivos");
while (($ar = readdir($dir)) !== false)
  {
  echo ("<a href='$dir$ar'> $ar</a> <br />");
  }
closedir($dir);
Hay algo que hago mal, y me pregunto cómo se introduciría la función "a href" en un echo al listar directorios, de tal manera que clicando en cada elemento de la lista te descargue o abra ese archivo?

Saludos crack!
Imagen

"Be the change you want to see in the world"
facil, la funcion opendir devuelve un recurso no un string, para hacer funcionar tu script debes poner el path del directorio en otra variable como string asi:

Código: Seleccionar todo

<?
$dir = opendir("archivos");
$carpeta="archivos/";
while (($ar = readdir($dir)) !== false)
  {
  echo ("<a href='{$carpeta}{$ar}'> $ar</a> <br />");
  }
closedir($dir);
?>
//mHmm..
Gracias por la ayudita Ahora si que funcionan los links! jajaja

Perdona por desviar un poco el post original pero ya que estoy... Hace tiempo leí sobre la posibilidad de especificar cuántos niveles de profundidad quieres listar, te quería preguntar si conoces alguna función para listar exclusivamente los archivos del directorio, especificado en el php, sin listar el resto de carpetas dentro de ese directorio... no se, a lo mejor se puede conseguir quitándole a esas carpetas permisos chmod?

Thanks bro!

Y sorry otra vez...
Imagen

"Be the change you want to see in the world"
xD bueno estamos muy desviados del tema pero xD bueno, no se si exista una funcion para solo listar archivos... Pero lo primero que se me ocurre esque puedes inventarte una funcion filtrando extenciones, es decir si no hay extencion es carpeta y si hay es archivo, despues de todo si a una carpeta la llamas hola.algo se pone como si fuese un archivo en el servidor, lo unico que tendrias que hacer es detectar si hay "." algo como esto:

Código: Seleccionar todo

<?
$dir = opendir("archivos");
$carpeta="archivos/";
while (($ar = readdir($dir)) !== false)
  {
    if(strpos($ar,"."))
    {
      echo ("<a href='{$carpeta}{$ar}'> $ar</a> <br />");
    }
  }
closedir($dir);
?>
saludos

--> Edito
Igual si tienes mas dudas abre otro tema y te hecho una mano, para no desviar este
//mHmm..
Mil gracias tio! Me has iluminado!! Hmmm se me ocurren un par de cosas como la que comentas, las pruebo, y si no resultan como espero ya abro un post y tal

Muy bueno el uploader seaah!
Imagen

"Be the change you want to see in the world"
Responder

Volver a “Otros lenguajes”