Foros del Web » Programando para Internet » ASP Clásico »

ASPUPLOAD no me valida una variable

Estas en el tema de ASPUPLOAD no me valida una variable en el foro de ASP Clásico en Foros del Web. Hola a todos: Tengo un pequeño problemilla por el cual no me funciona una página hecha en asp. Esta página añade un registro a una ...
  #1 (permalink)  
Antiguo 14/08/2004, 06:02
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
ASPUPLOAD no me valida una variable

Hola a todos:
Tengo un pequeño problemilla por el cual no me funciona una página hecha en asp.
Esta página añade un registro a una DB. El problemilla es que aunque el campo de tipo File "imagenproducto" este vacio o lleno nunca me añade el registro. Esto sucede desde que cambie los request.form por request.upload del componente aspuload, puesto que según deduzco de sus instrucciones se llevan bastante mal.
Obviamente si anulo las sentencias de validación del campo "imagenproducto" y la variable "imagenproducto" la pagina funciona perfectamente. Lo que quiero es obligar al usuario a que no deje la fotografia del producto sin subir al servidor.

Les paso el código para ver si le pueden echar un vistazo porque yo no soy capaz de ver el error. Solo paso el código de la página que evalua el formulario puesto que el formulario pienso que no es necesario.
Les resalto en rojo el lugar donde está el problema.
Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
response.Expires=0
Response.AddHeader "PRAGMA", "NO-CACHE" 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Administrar Productos</title>
</head>
<!--#INCLUDE file="../../../adovbs.asp"-->

<%
'Aquí se usa la coleccion upload.form debido a que el componente AspUplad no
'se lleva bien con el request.form del ASP
Set Upload = Server.CreateObject("Persits.Upload.1")
'Carpeta donde se subirán los ficheros
Upload.Save(server.mappath("\images\prueba")) 
%>

<%'Para conexión a dsn arsys con ACCESS
set Conn= Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DSN=clubviajesoferta.com.amancio"
Conn.open
Set RS=Server.CreateObject("ADODB.Recordset")
rs.activeconnection=conn 
rs.source="productos"
rs.Locktype = adLockOptimistic
rs.CursorType = adOpenDinamic
rs.open
'Termina aquí la conexion a dsn arsys con ACCESS
%>

<%
'Recupera las variables del formulario
referenciaproducto= Trim(upload.Form("referenciaproducto"))
categoriaproducto= Trim(upload.form("categoriaproducto"))
nombreproducto= Trim(upload.Form("nombreproducto"))
marcaproducto= Trim(upload.form("marcaproducto"))
precioproducto= Trim(upload.Form("precioproducto"))
tallajeproducto= Trim(upload.form("tallajeproducto"))
imagenproducto= Trim(upload.form("imagenproducto"))
descbrevproducto= Trim(upload.form("descbrevproducto"))
descripcionproducto= Trim(upload.form("descripcionproducto"))
temporadaproducto= Trim(upload.form("temporadaproducto"))
estadoproducto= Trim(upload.form("estadoproducto"))

insertar="True"

'Asignamos los valores predeterminados
if referenciaproducto= "" then
	response.write("el campo ""referencia"" está vacio <br>")
	insertar="False"
end if

if categoriaproducto= "" then
	response.write("el campo ""categoría"" está vacio <br>")
	insertar="False"
end if

if nombreproducto= "" then
	response.write("el campo ""nombre"" está vacio <br>")
	insertar="False"
end if

if marcaproducto= "" then
	response.write("el campo ""marca"" está vacio <br>")
	insertar="False"
end if

if precioproducto= "" then
	response.write("el campo ""producto"" está vacio <br>")
	insertar="False"
end if

if tallajeproducto= "" then
	response.write("el campo ""tallaje"" está vacio <br>")
	insertar="False"
end if

if imagenproducto= "" then
	response.write("el campo ""imagen"" está vacio <br>")
	insertar="False"
end if
if descbrevproducto= "" then
	response.write("el campo ""descripción breve"" está vacio <br>")
	insertar="False"
end if

if descripcionproducto= "" then
	response.write("el campo ""descripción completa"" está vacio <br>")
	insertar="False"
end if

if temporadaproducto= "" then
	response.write("el campo ""temporada"" está vacio <br>")
	insertar="False"
end if

if estadoproducto= "" then
	response.write("el campo ""estado"" está vacio <br>")
	insertar="False"
end if

'Añadimos el registro
rs.addnew
For each Parametro in upload.Form
'Para ver los nombres de los campos del formulario
'response.write(parametro.name & ", <br>")
'Aquí recogemos el valor del campo del formulario porque las variables solo
'se usan para validar el formulario, debido a que no hay forma de recoger
'los valores que hay en las variables para meterlas en la base de datos
	LCase(Parametro.value)
	rs(parametro.name)=(parametro.value)
Next

'Este For-Next hace que el fichero se suba al servidor
ruta="../images/"
For Each File in Upload.Files
	rs(File.name)=ruta & (File.filename)
	'Response.Write File.Name & "= " & File.Path & " (" & File.Size &" bytes)<BR>"
Next

If Insertar then
	rs.Update 
	response.write("El producto se ha añadido correctamente a la base de datos <br>")
else
	rs.cancelupdate
	response.write("<br>El producto no se ha añadido al a base de datos puesto que el/los campo/s arriba indicados no contienen datos")
End if

rs.close
conn.close
%>
<body>
</body>
</html>
¿Por cierto alguien puede indicarme porque no me funciona la sentencia LCASE?
No da error pero tampoco convierte el nombre de los ficheros a mínusculas.

Gracias a todos de antemano. No se que haría sin su ayuda

Última edición por ciberpata; 14/08/2004 a las 06:05
  #2 (permalink)  
Antiguo 16/08/2004, 12:43
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Por favor podrían ayudarme???
  #3 (permalink)  
Antiguo 03/07/2009, 17:35
 
Fecha de Ingreso: febrero-2005
Mensajes: 17
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: ASPUPLOAD no me valida una variable

Hola!

En realidad estoy bastante apurado, pero en este foro he recibido valiosa ayuda antes. No es una respuesta concreta a tu caso, pero como ya está funcionando, revisa y ves que debes editar ok?

Que hace?

* Sube todas las imagenes que quieras (en página que redirecciona a esta deberás poner cuantos files desees)
* limitando el tamaño de archivo; da mensaje de error si supera los kb--->
* verifica que cada file upload sean imágenes; si no son imagenes las borra.
* Asigno un nombre diferente al original usando un código aleatorio (El componente trae una opción para esto, pero me enteré después!)
* redimensiona a dos tamaños diferentes, manteniendo proporciones
* estampa un logo (logo.png en el servidor)
* borra la imagen original de tamaño grande
* agrega cada registro a una Base Access
* luego redirecciona a una página de salida.

Si no estás ducho, mañana puedo ayudarte mejor....

Saludos!
Código PHP:
<&#37;Response.CharSet = "utf-8" %>

<% Server.ScriptTimeout 1800 %> 



<%



    
Set Upload Server.CreateObject("Persits.Upload")
    
Upload.IgnoreNoPost true 
    

set oConexion
=server.createobject ("ADODB.CONNECTION")
oConexion.open "provider=microsoft.jet.oledb.4.0;data source=" server.mappath("../bbdd/galeria.mdb")


Const 
adOpenKeyset 1
Const adLockOptimistic 3
 inicio de carga en automotores
set rscd
=createobject("ADODB.Recordset")
rscd.CursorType adOpenKeyset 
rscd
.LockType adLockOptimistic 
sqltxt1
=" SELECT * FROM fotogaleria"
rscd.Open sqltxt1oConexion




    Set Jpeg 
Server.CreateObject("Persits.Jpeg")
    
Upload.OverwriteFiles False
    Upload
.ProgressID Request.QueryString("PID")

    
Upload.SetMaxSize 15728640False

    On Error Resume Next
    n 
Upload.Save(Server.MapPath ("../galeria2009/"))

    If 
Err.Number 8 Then
   Response
.Write "No permitido. Sus imágenes deben pesar 2 MB como máximo."

    
ErrorNum Err.Number
    Descr 
Err.Description

If ErrorNum <> 0 Then
        Response
.Write "<B>Ha ocurrido un error: <FONT COLOR=""#FF0000"">" Descr "</FONT></B>Contacte al webmaster a la brevedad posible: Enrique Ogalde Cel.: (02965) 15393307"
response.end
end 
if
end if


randomize()
largo 3
For contador 1 to largo
numero 
Int(26 Rnd 97)
letra Chr(numero)
codigo codigo letra
next        
idfamilia 
upload.form("idfamilia")
idSUBfamilia upload.form("idSUBfamilia")
nombrefamilia upload.form("nombrefamilia")
nombreSUBfamilia upload.form("nombreSUBfamilia")




For 
Each File in Upload.Files
  
If File.ImageType "UNKNOWN" Then
  File
.Delete
  end 
if





   
i1 ""&codigo&"_" File.FileName


   Jpeg
.Open File.Path
   
   
   
500
if Jpeg.OriginalWidth Jpeg.OriginalHeight then
Jpeg
.Width L
Jpeg
.Height Jpeg.OriginalHeight Jpeg.OriginalWidth
Jpeg.Width 90
Jpeg.Height 90
else
Jpeg.Height L
Jpeg
.Width Jpeg.OriginalWidth Jpeg.OriginalHeight
Jpeg.Width 95
Jpeg.Height 95
end 
if
        
Jpeg.ToRGB 



Set Jpeg2 
Server.CreateObject("Persits.Jpeg")
Jpeg2.Open  Server.MapPath("logo.png"

Jpeg.Canvas.DrawImage xyJpeg20.6 , &Hffffff2

Jpeg
.Save Server.MapPath("../Galeria2009/") & "\Gr_"&codigo&"_" File.FileName
File
.Delete


150
if Jpeg.OriginalWidth Jpeg.OriginalHeight then
Jpeg
.Width L
Jpeg
.Height Jpeg.OriginalHeight Jpeg.OriginalWidth
else
Jpeg.Height L
Jpeg
.Width Jpeg.OriginalWidth Jpeg.OriginalHeight
end 
if
        
        
Jpeg.Save Server.MapPath("../Galeria2009/") & "\CH_"&codigo&"_" File.FileName


   
File
.Delete

rscd
.Addnew



rscd
("familia") = idfamilia
rscd
("SUBfamilia") =  idSUBfamilia
rscd
("NombreFotoChica")= "CH_"&i1&""
rscd("NombreFotoGrande")= "Gr_"&i1&""
rscd("descripcionfoto")= descripcion
rscd
("numerovisitas")= 1


next









rscd
.Update
rscd
.close
Set rscd 
Nothing
Set oConexion 
Nothing
oConexion 
close 

response
.Redirect("OtraPaginademisitio"%> 
Ojalá te sirva de ayuda!
  #4 (permalink)  
Antiguo 03/07/2009, 21:50
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
Respuesta: ASPUPLOAD no me valida una variable

lo del LCASE sera que no le pasas el valor a ninguna variable?
  #5 (permalink)  
Antiguo 05/07/2009, 10:40
 
Fecha de Ingreso: febrero-2005
Mensajes: 17
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: ASPUPLOAD no me valida una variable

Estuve mirando tu código Ciberpata.

El archivo no debe ser un upload.form ya que es un campo file. Debes llamarlo con upload.file

Código PHP:
For Each File in Upload.Files ' lee cada imagen subida desde el formulario

  If File.ImageType = "UNKNOWN" Then ' 
si el tipo de archivo NO es una imagen
   File
.Delete ' la borra
    end if

if file.name  = "MiNombredeCampoArchivo1" then
   NombreVariable1 = Cualquiercosa1
   end if

next ' 
sigue procesando la lista de imagenes

' Luego sigue tu página...........................

if Cualquiercosa1= "" then
    response.write("el campo ""imagen1"" está vacio <br>")
    insertar="False"
end if

Luego sigue tu página........................... 
Ojalá te sirva de ayuda, así como yo encontré ayuda antes.

Saludos.-
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 12:37.