Enlaces
Esta en:

documentos
Arriba
Bind-9
Bind-8
Ad+bind
Dhcp
Kdephp
Shell
Trucos
Php
Documentos
Cuestiones php
Fedora
Legal
W2000 xp
COMOS
Errores dns

RE: [PHP-ES] aplicacion de gestion de archivos y acceso a los mismos

Write haof XML files: Hari Seldon <hari.seldon_at_telefonica.net>
Fecha: Wed, 17 Oct 2007 21:23:59 +0200

Hombre, eso de que hay muchos archivos y por eso se demora... No se yo; por
que entonces, si tienes una máquina para el correo, y esas cosas.. Con la de
archivos que meten...

Desde luego, si no lo haces así... ¿Cómo quieres hacerlo? Por que más rápido
que el acceso al disco del server, no hay absolutamente nada (imagínate que
lo metes en DDBB, te lo lees, y después tienes que soltárselo al usuario...)

Sobre qué guardar, yo personalmente guardaría nada más el nombre del
archivo; y el resto de la ruta, lo metería en variables a nivel de
aplicación (vía defines, o como quieras); si además quieres que por cada
usuario, su directorio sea privado para ese usuario (o sea, que únicamente
ese user pueda descargar archivos de ese directorio), metes su directorio en
la tabla/as dónde guardes los datos del usuario

Por ejemplo:

$nombre_archivo = $aRow['nombre_archivo'] // este viene de base de datos, de
la tabla/as dónde tengas los archivos
$directorio_archivo = $aRowUser['directorio_usuario']; // este tb viene de
base de datos, de la tabla/as de los usuarios
$url_archivo = 'http://'.'/'. MY_APP_DIR_WS .'/'. $directorio_archivo
.'/'.$nombre_archivo; // MY_APP_DIR_WS es una constante definida con un
define

Sobre el renombrado de archivos, a mi me gusta lo que se hace por defecto en
Symfony, algo así:

      $fileName =
md5($this->getRequest()->getFileName('archivo[path]').time().rand(0,
99999));
      $ext = $this->getRequest()->getFileExtension('archivo[path]');
      if (is_file($currentFile))
      {
        unlink($currentFile);
      }
      $this->getRequest()->moveFile('archivo[path]',
sfConfig::get('sf_upload_dir')."/archivos/originals/".$fileName.$ext);
      $this->archivo->setPath($fileName.$ext);
 
// $this->getRequest()->getFileName devuelve el nombre del archivo en el
input con el nombre que le pases al método
// $this->getRequest()->getFileExtension devuelve la extensión del archivo
en el input con el nombre que le pases al método
// y el resto es fácil de ver qué hace

Un saludo

> -----Mensaje original-----
> De: Javier Martinez [mailto:ecentinela_at_gmail.com]
> Enviado el: miércoles, 17 de octubre de 2007 20:37
> Para: php-es_at_lists. php.net
> Asunto: [PHP-ES] aplicacion de gestion de archivos y acceso a los
> mismos
>
> Resulta que estoy haciendo una aplicacion en la que una de las
> acciones que los usuarios pueden hacer, es subir sus archivos y
> gestionarselos, creando carpetas, etc.
> Cada usuario tiene una carpeta propia y a partir de ahi, el usuario
> crea las carpetas, subcarpetas, etc, etc como quiera y donde quiera
> (como un disco duro virtual).
>
> Cuando el usuario sube los archivos, yo guardo el archivo fisicamente
> en la carpeta que ha escogido (siempre dentro de su carpeta privada).
> Tambien guardo en la base de datos, donde se encuentra el archivo y
> sus datos mas basicos (tamaño, extension, etc).
>
> Se me ha ocurrido que ya que guardo los datos del archivo, y que cada
> archivo tiene un identificador unico, podria renombrar el archivo con
> el identificador que le otorga la base de datos (autonumerico) y
> guardar todos los archivos(fisicamente) en la misma carpeta sea del
> usuario que sea (ya que tengo los datos del archivo en la base de
> datos).
>
> Lo he comentado a un compañero y me ha dicho que hizo eso en un
> proyecto PHP (como el que yo estoy haciendo ahora) que alojaba en un
> servidor Red Hat y en un Windows XP (2 instalaciones) y que en ambos
> casos, cuando habia muuuuuuchos archivos en la carpeta, el acceso para
> descargar un archivo (accediendo directamente con la ruta completa del
> archivo) se demoraba mucho y a veces no funcionaba. Me refiero a miles
> de archivos. Como si el S.O. no supiese gestionar tal cantidad de
> archivos (aun accediendo directamente al archivo solicitado).
>
> ¿Sabeis algo de esto? ¿Puede ser problema del SO o es que la
> implementacion no era buen? ¿Habeis hecho algo parecido? ¿Como lo
> habeis abordado?
>
> Gracias a todos por leer este correo, que ya se que puede ser un toston
> :P
>
> --
> PHP Spanish Localization Talk Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Nearby jue oct 18 2007 - 00:23:07 CEST

Este archivo fue generado por hypermail 2.2.0 : mié nov 07 2007 - 20:55:37 CET


Página Principal
Google

Web
dns.bdat.net

Visita nuestro proveedor:
www.bdat.net

Publicidad:

Impresenteibols:Humor Jazz, música en vivo