Foros del Web » Programando para Internet » PHP »

Función uploader() | Script para desarrolladores.

Estas en el tema de Función uploader() | Script para desarrolladores. en el foro de PHP en Foros del Web. Bueno en esta ocación les traigo una función que desarrolle para calmar el problema de subir archivos al servidor de forma multiple como solo un ...
  #1 (permalink)  
Antiguo 10/05/2005, 16:34
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 3 meses
Puntos: 15
Información Función uploader() | Script para desarrolladores.

Bueno en esta ocación les traigo una función que desarrolle para calmar el problema de subir archivos al servidor de forma multiple como solo un archivo.

Esta función controla tambien los tipos de archivos permitidos para ser copiados al server y el tamaño máximo por archivo.

También es de destacar que esta función devuelve un array con los detalles de cada archivo gestionado, donde podremos apreciar si fueron validos y si se copiaron correctamente.

Para más detalles los invito a visitar su sitio web y alli podrán ver su uso, su composición y podrán bajarlo en formato zip que trae la función uploaderFunction.php y un ejemplo de su uso.

http://php.dwaks.com/uploader/
  #2 (permalink)  
Antiguo 11/05/2005, 00:20
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 20 años, 9 meses
Puntos: 0
muy bueno
pero... lo que tengo que insertar en la bbdd es lo que me devuelva en $msg¿?
  #3 (permalink)  
Antiguo 11/05/2005, 07:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Gracias una vez más por compartir con nosotros.

Algunos detallitos ...

Según el código se vé que validas y controlas el error de que te indiquen una ruta de destino de tus archivos que no exista .. OK, .. pero no estaría de más hacer mención en el apartado correspondiente de la documentación donde describes el funcionamiento de esa variable que lo define.

Un detalle .. para recorrer un array (en ciertos casos como el ejemplo) puedes usar un bucle tipo foreach() . .así te evitas usar un for() y tener que contar sus elementos (count()):
Código PHP:
for($i=0;$i<count($msg);$i++) {
echo 
$msg[$i]."<br>";

quedaría:
Código PHP:
foreach ($msg as $mensaje){
   echo 
$mensaje."<br>";

Otro detalles ...
Para que no te llenes de preguntas "me sale un mensaje de error que no tengo permisos para .. bablabla" o "le digo que $size=1000000000 y sólo me sube archivo de 2 MB ... o cuando son muy pesados el script sale con "pagína no encontrada" .. Estaría bueno que mencionases en la documentación del mismo algunos aspectos a tener en cuenta, por ejemplo:

* El directorio donde quendan los archivos físicamente .. ha de tener permisos de escritura tipo 0677 o similar (ahí veras tu cual combiene mas). (esto si usa Linux .. en windows normalmente no pasan estos problemas por qué no hay permisos de archivos (según versión de Windows claro ..).

* Configuración de PHP .. El tamaño máximo del archivo a subir lo define en php.ini las directivas max_upload_size y alguna más .. Es bueno hacer el comentario .. pues si bien por "soft" ajustas dicho valor .. lo haces con el tope de lo que dicha directiva indique .. no se puede configurar en tiempo de ejecución como para que tu script la "fuerze" ..

Bueno . .en general como veras es hacer incapié a que configuración de PHP va afectar a que tu ejemplo funcione o no funcione en todos los casos. Por qué si bien en "internet" vemos miles de ejemplos (mas o menos completos en su funcionalidades) muyyyyyyyyy pocos mencionan temas de "configuración" de PHP que afecta a su funcionamiento .. en consecuencia se ven respuestas como "a mi me va" .. o "a mi no me vá .. me da tal error" ..

Un saludo,
  #4 (permalink)  
Antiguo 11/05/2005, 07:53
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 3 meses
Puntos: 15
Gracias Cluster.
De verdad tienes toda la razón y asi mismo será ya que anexare tus detalles.
  #5 (permalink)  
Antiguo 11/05/2005, 08:58
 
Fecha de Ingreso: febrero-2005
Mensajes: 125
Antigüedad: 19 años, 9 meses
Puntos: 0
subir archivos

estaba probando la funcion. y no me corre la pregunta es podria ser por el servidor web que estoy usando.
mi s.o es xp y sw iis
un saludo gracias el error que sale es
searchicon.gif: Error al copiar este archivo al servidor.
  #6 (permalink)  
Antiguo 11/05/2005, 09:44
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 3 meses
Puntos: 15
Bueno ese script lo programe desde un server apache local en mi pc que tiene como S.O. XP profesional y con php 4.x.x.

El me permitio el desarrollo y que todo subiera correctamente y como dijo cluster en window no debe dar problema los permisos de carpetas, en teoria digo esto ya que enrealidad nunca e tenido problema de ese tipo al momento del desarrollo.

A mi parecer para que la funcion move_uploaded_file falle debe ser por permisos, si algo mas abarca eso entonces vere un poco mas de detalles al respecto.
  #7 (permalink)  
Antiguo 11/05/2005, 10:08
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 3 meses
Puntos: 15
Cybor no entendi tu pregunta, si me lo puedes aclarar mas entonces puedo ayudarte.
  #8 (permalink)  
Antiguo 11/05/2005, 11:23
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 20 años, 9 meses
Puntos: 0
pues pues... si te digo la verdad.... no recuerdo.......
pero viendo de nuevo el script y probando el ejemplo que pones
al seleccionar un archivo y darle a subir da un error donde dice que el tipo es erroneo
es a lo que voy, que tengo que pasar o usar para guardar en la bbdd lo que me da el script?

por si se me ha pasado voy a repasarlo todo de nuevo

saludos
  #9 (permalink)  
Antiguo 11/05/2005, 11:28
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 3 meses
Puntos: 15
Bueno te dejo un dato, los tipos que yo puse como ejemplo en el array $tipos son para uso de window ya que el jpg de en linux se ve como "image/pjpeg" y en window "image/jpeg"

Asi que quizas no te deje subir la imagen jpg por el tipo que no coincida.

Ya le anexe a la funcion como ultimo detalle de la version 1 que si el tipo no es correcto te diga en el mensaje que tipo es y asi puedas anexarlo al array ya que conseguir los tipos te tomara mas tiempo, asi que bajate la version 1 denuevo y utiliza la que bajes.

El array que devuelve la funcion uplader son mensajes de lo que paso con la imagen, ejemplo:
imagen.jpg La imagen se copio correctamente
imagen.gif es de tipo "image/jpg" y no es de un tipo permitido.

Saludos,
  #10 (permalink)  
Antiguo 11/05/2005, 11:38
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 20 años, 9 meses
Puntos: 0
ummmmmm a ver si le doy un vistazo pero intente subir txt y rar con el mismo resultado

pero me referia a si el tipo es correcto que devuelve?

igual me estoy liando..... pero...

bueno..... para que se vea lo burro que soy no edito :p

entonces lo que hace es subir el fichero a una carpeta del servidor?
pense que lo guardaba en la bbdd, por eso decia
  #11 (permalink)  
Antiguo 11/05/2005, 11:48
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 3 meses
Puntos: 15
si el lo sube al servidor en una carpeta que tu le diras cual sera.
  #12 (permalink)  
Antiguo 12/05/2005, 15:43
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 3 meses
Puntos: 15
Función Uploader ya esta en Versión 1.5 :
DETALLES
1- La función podrá ser comprobada como boolean ya que devuelve true y false.
2- La función incorpora una nueva manera de ver los detalles de cada imagen que se proceso con una pequeña función que puede ser llamada de cualquier parte despues que se invoco a la función uploader(). el uso de esta función es simple ya que solo llamarla "uploader_msg()" imprimirá los detalles del proceso.
3- Amplia su estructura con la creación de una variable array ($uploader_imagenes_copiadas) que es creada en la funcion de forma global y que podrán usar para ver los nombres de las imagenes que fueron copiadas correctamente permitiendo la inserción de ellas a base de datos para uso en todo tipo de sistema que las necesite de esta manera.

Leer mas de su uso en http://php.dwaks.com/uploader/index.php
  #13 (permalink)  
Antiguo 12/05/2005, 20:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Una ligera corrección:
Cita:
2- Configuración de PHP: El tamaño máximo del archivo a subir es definido por php.ini las directivas max_upload_size y alguna más .. Es bueno saberlo .. pues si bien el uploader no ajustas dicho valor .. y trabaja con el tope de lo que dicha directiva indique .. no se puede configurar en tiempo de ejecución y uploader() no lo puede forzar.
Lo que no se puede alterar vía tu script es el tamaño máximo del archivo a subir (fuera de la limitación lógica que puedes hacer por debajo de ese tope impuesto por PHP).

Si puedes modificar el tiempo de ejecución de tu script .. pues lo va a necesitar si hay conexiones lentas y archivos pesados. Va a superar los "30" segundos por defecto que PHP le otorga a un script para su ejecución. Puedes usar la función: set_time_limit() ajustada a los segundos que estimes oportunos (podría ser 0 para = tarde lo que tarde el script en su ejecución). Cabe destacar que esa función no es posible usarla si se usa "SAFE_MODE" (a on) (modo seguro de PHP, ahí estás frito xD).

Otro detalle:
Estaría bueno que tu función que genera $uploader_imagenes_copiadas fuese un array multidimensional que contenga no sólo el nombre del archivo subido, sino también otros detalles como el tamaño del archivo y sobre todo el formato MIME del archivo (en realidad todo lo que devuelve de por sí: $_FILES .. en sus "type","size" y demás parámetros) .. Entre otras cosas por qué cuando uno administra archivos "subidos" a una BD se suele uno guardar esos datos para no andar obteniendolos del archivo (cuando, cuando sube ya lo tenemos ahí bien claro y localizado).

Un saludo,
  #14 (permalink)  
Antiguo 13/05/2005, 12:15
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 3 meses
Puntos: 15
Gracias a la recomendacion de cluster actualmente la funcion uploader paso a su version 1.6

En esta version la variable global de retorno $uploader_imagenes_copiadas fue cambiada por la variable array multidimensional $uploader_archivos_copiados que brinda detalles como el nombre del archivo que se subio correctamente y su tipo y peso.

Para ver los detalles visiten la página:
http://php.dwaks.com/uploader/
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 13:08.