Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2006, 12:55
Avatar de zacktagnan
zacktagnan
 
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 20 años, 1 mes
Puntos: 3
Controlar código en un Upload

Hola, a todos:

En una página que estoy haciendo para una Inmobiliaria, en su apartado de administración de la Web, hay formularios de esos de "multipart/form-data"
para insertar nuevos registros en la base de datos, y a la vez imágenes referentes a esos registros.

Por ejemplo, hay un apartado para insertar una nueva Promoción de Viviendas, incluyendo los datos de siempre(nombre, iniciales, tipo de Promoción,...), y además se suben dos imágenes (con un campo de formulario de tipo archivo). Una imagen que es, digamos, una imagen de Portada de la Promoción; y otra imagen que es el Plano General del bloque de viviendas que contiene la Promoción.

Bueno, para todo esto tengo una serie de código ASP programado con funciones que baje desde http://www.freeaspupload.net/ .
Yo he conseguido adaptarlo para que, al subir el archivo de imagen, se renombre éste según las "iniciales" que tenga la nueva promoción. Es decir:

El usuario, en el campo de "Iniciales" pone, por ejemplo, 'promo'
Entonces, el nombre de la imagen quedaría al subirla: promo_nomImagen.extension

La questión de la subida de archivos y renombramiento se realiza a través de un bucle.

Decir que, mediante el código de las funciones, se verifica de alguna manera si los campos de archivo del formulario están ó no vacíos. Si lo están, no se hace nada. Ni mandar los datos de texto.

Como he dicho, para cada promoción, hay dos posibles imágenes: una para la Portada y otra para el Plano.
El primer campo de archivo es para incluir la imagen para la Portada y el segundo campo de archivo es para el Plano.

Luego, yo lo que quiero lograr es que, al subir la(s) imagen(es) de la nueva promoción, si es que se incluye alguna para el nuevo registro, queden renombradas de una manera diferente según sea la imagen de la Portada ó la del Plano. Teniendo en cuenta que igual en el momento de insertar el nuevo registro, rellenando el formulario, no se incluya la imagen de la portada, ó la imagen del plano. Es decir, que se envíen los datos sin ser obligatorio incluirlas. Una vez subidas la imagen del campo de archivo referente a la Portada, y la imagen referente al campo de archivo del Plano, yo desearía que quedaran renombradas así:

iniciales_portada.extension
iniciales_planoGral.extension

De primeras, en el código ASP del archivo que contiene el formulario, en el bucle de subida y renombramiento, manejo una variable 'iNum', inicializada a 1. Según el valor de esta la imagen se renombra para la portada y en su segundo valor, el 2, la imagen se renombra como plano.

Cuando se rellena el formulario incluyendo las dos imágenes, todo va bien renombrándose las imágenes como he indicado. Si se inserta la imagen para la Portada también va bien. El problema es cuando el campo de archivo para la imagen para la Portada se queda en blanco, y si se incluye la imagen para el Plano. Entonces, en vez de renombrarse como plano (iniciales_planoGral.extension) se queda renombrada como si fuera para la Portada (iniciales_portada.extension).

No sé en que parte del código, verifica los campos de archivo y los que están vacios no los considera.
Me gustaría saber dónde se hace esto para poder controlar que si el campo de archivo primero está vacío se aplicará algo para que, si se incluye una imagen para el Plano, ésta se renombrara como se especifica.

Pinchando en el siguiente el que quiera se bajará un .zip con toda la estructura de archivos necesaria para ver lo comentado.
http://free.7host06.com/webzk/pruebaUpload.zip

La carpeta descomprimida ponerla en el directorio raíz del Inetpub de Windows (es decir la carpeta wwwroot). Luego, abrir a través del navegador la dirección:
http://localhost/pruebaUpload/admin/adm_insProm.asp

Entonces, se abre el archivo con el formulario desde dónde se eligen las imágenes a subir.
Si la carpeta se pusiera en otro lugar de C: en el ordenador, habría que cambiar alguna de las variables que lleva el archivo 'adm_insProm.asp', como la que indica dónde se guardan los archivos subidos.

Pues eso, a ver si alguien me ayuda a resolver como averiguar desde dónde se controla ó se puede controlar que uno de los campos de archivo está vacía para renombrar como quiero las imágenes.
Tambien necesito que cada valor termine en una variable determinada que servirá para insertar dicho valor en el campo de la tabla de la base de datos. Es decir, una vez correctamente renombradas:
Si es la imagen de Portada va a la variablePortada sino a variablePlano
variablePortada = iniciales_portada.extension
variablePlano = iniciales_planoGral.extension

Saludos,

zacktagnan.
================================================== ======