Foros del Web » Programando para Internet » PHP »

administrar imagenes subidas por usuario

Estas en el tema de administrar imagenes subidas por usuario en el foro de PHP en Foros del Web. estoy realizando una web donde cada persona debe subir 4 imagenes una de esas imagenes debe mostrarse en un aviso principal ...luego al dar click ...
  #1 (permalink)  
Antiguo 25/10/2006, 09:54
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 3 meses
Puntos: 1
administrar imagenes subidas por usuario

estoy realizando una web donde cada persona debe subir 4 imagenes una de esas imagenes debe mostrarse en un aviso principal ...luego al dar click en detalle muestra las 4 imagenes a a mayor tamaño junto con otros datos

digamos que la imagen en el aviso principal tiene aprox 100 px x 100px
y las que estan colocadas en la pagina con mas detalles son mas grandes.. el funcinamiento de la pagina es usando php y mysql que es donde guardo las datos y donde guardarias las imagen

el cliente mandaria los datos junto con las 4 imagenes a traves e un form

mi consulta es

ya que no puedo pedirles al cliente que me envie las imagenes a dos tamaños disitntos por que seria molesto..

estaba pensando que mediante el formulario subieran las imagenes a una carpeta del servidor y a la vez se guarde en base de datos la ruta de la imagen .. luego al colocarlo en la pagina dimensionaria la imagen?

cual seria la forma de administrar mejor esto hacer una carpeta por cada persona que suba una imagen?

como recojo en la pagina php la ruta de la imagen guardada en mysql para que me muestre la imagen?

No se si esto es la mejor forma o alguien piensa que hay un mejor metodo
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
  #2 (permalink)  
Antiguo 25/10/2006, 10:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
estaba pensando que mediante el formulario subieran las imagenes a una carpeta del servidor y a la vez se guarde en base de datos la ruta de la imagen .. luego al colocarlo en la pagina dimensionaria la imagen?

cual seria la forma de administrar mejor esto hacer una carpeta por cada persona que suba una imagen?
Si vas a gestionar tus archivos sobre una BBDD .. el tema "físico" de como queden tus imagenes en el servidor ya es lo de menos .. De hecho debes "confiar" y acceder a tus archivos desde tu aplicación que gestiona tu BBDD donde tu le das propiedades y las obtienes/gestionas por ese médio ..

Yo en estos casos sólo creo un directorio y ahí dejo todas las imagenes .. Las referencias de "a quien le pertenece" ya las hago en la Base de datos. No me "desgasto" configurando directorios y demás en el "servidor" .. es decir, replicando nuevamente una estructura de datos que ya hago sobre el "modelo de datos" de la BBDD que implementé.

Temas no tan "menores" como de duplicidad de archivos de nombre de un usuario vs otro .. los solvento incrustrando un prefijo aleatorio al nombre del archivo (un mktime() por ejemplo o el ID del registro creado ... y viendo que no exista .. ).

Cita:
como recojo en la pagina php la ruta de la imagen guardada en mysql para que me muestre la imagen?
Realmente con la propuesta que te hago . .tu sólo en tu BBDD vas a guardar el nombre de la imagen (el real que le des con el ID/time() como prefijo que le puedas dar para evitar confusiones ..).

La ruta absoluta hacia tu archivo la indicas como "prefijo" en tu tag de visualización de la imagen HTML tipo:

<img src="imagenes/<? echo $row['imagen_nombre'] ?>">

Esto sería una de las soluciones más simples pero no seguras.

Puedes con PHP leer tu imagen del sistema de archivos y entregarla al buffer de salida de PHP por médio de cabeceras HTTP (enviadas con header()) y ayuda de readfile() (Hay FAQ's que aplican estas funciones .. ).

El único problema que tendrías con este tipo de sistemas es sobre la "privacidad" de los archivos entre usuarios .. Deberías crear una referencia aleatoria (en este caso ya un simple "time()" no te serviría ..) para llamar a tus imagenes y así un usuario común no "pruebe" a poner identificadores secuenciales (como los típios "ID=n° que es autonumérico"):

De esta forma nos referenciamos tipo:
ver_imagen.php?ref=hyi78689

En lugar de algo tipo:
ver_imagen.php?id=1

y así probar a ver si está la "ver_imagen.php?id=2" de nuestro "vecino".

De hecho .. esta misma "referencia" de código aleatorio y único podrias usarla como pre-fijo para el nombre del archivo físico que tenga que tener el archivo para poder gestinar todos los archivos sobre un mismo directorio.

Mi propuesta de "un sólo directorio" sólo la justifico por:
1) Nunca voy a recorrer todo ese directorio en busca de algún archivo (con algún bucle .. a lo sumo un "file_exists()" o algo así para verificar que no exista el archivo).
2) Voy acceder al archivo en forma directa (sabré su nombre por consulta SQL de mi BBDD que me lo entregue).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 25/10/2006, 12:07
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 3 meses
Puntos: 1
gracias cluster ya me quedo mas claro como gestionar las imagenes..

coloc en un directorio todas las imagenes y obviamente al guardarlas en bd cada cliente va a tener sus 4 imagenes asignadas .. para que no se dupliquen archivos con mismo nombre incrusto un prefijo aleatorio mediante mktime()(despues veo como usar esa funcion)

lo que no entendi mucho es esto:
Cita:
El único problema que tendrías con este tipo de sistemas es sobre la "privacidad" de los archivos entre usuarios .. Deberías crear una referencia aleatoria (en este caso ya un simple "time()" no te serviría ..) para llamar a tus imagenes y así un usuario común no "pruebe" a poner identificadores secuenciales (como los típios "ID=n° que es autonumérico"):

De esta forma nos referenciamos tipo:
ver_imagen.php?ref=hyi78689

En lugar de algo tipo:
ver_imagen.php?id=1
pero primero hare lo otro y luego pondre mas seguridad como vos dijistes
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:57.