Combo que no pasa valor en el Request

12/09/2009 - 22:39 por Veronica Risso | Informe spam
Hola Grupo: Estoy usando un programa que saqué de algún lado de internet
para subir archivos llamado pruebaupload.asp
Hasta ahi todo bien. El tema es que le he estado haciendo modificaciones,
para que ahora aparte de subir la imagen grabe en una tabla un par de datos
sacados de un combo y el nombre de la imagen, pero el problema está en que
"no se ve" el valor del combo (en este caso llamado D1). Adjunto el código
completo, fíjense que en algunos lugares voy poniendo response.write para
ver los valores que van teniendo los datos y el tema pasa porque el
Request("D1") no muestra el valor de la selección.
Cualquier ayuda, agradezco desde ya. Tiene un include que no afecta porque
son solo funciones para subir los archivos, igualmente si alguien lo
necesita se lo mando
El Código
_______________________________________________
<%
option explicit
Response.Expires = -1
Server.ScriptTimeout = 600
%>
<!-- #include file="freeaspupload.asp" -->
<%
' ****************************************************
' Cambiar el valor de la siguiente variable
' para indicar el directorio de destino.
' El directorio indicado debe tener permisos de escritura
' de caso contrario el script fallará mostrando un error.
Dim uploadsDirVar
uploadsDirVar = server.mappath("/fotos")

' ****************************************************

function SaveFiles

'Conectamos a nuestra BD.
dim oConn1
Set oConn1 = Server.CreateObject ("ADODB.Connection")

oConn1.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("_private\plaimagenes.mdb")


Dim Upload, fileName, fileSize, ks, i, fileKey, resumen
Set Upload = New FreeASPUpload
Upload.Save(uploadsDirVar)
' If something fails inside the script, but the exception is handled
If Err.Number <> 0 then Exit function
SaveFiles = ""
ks = Upload.UploadedFiles.keys
if (UBound(ks) <> -1) then
resumen = "<B>Archivos subidos:</B> "
for each fileKey in Upload.UploadedFiles.keys
resumen = resumen & Upload.UploadedFiles(fileKey).FileName & " (" &
Upload.UploadedFiles(fileKey).Length & "B) "
'

response.write "INSERT INTO Imagenes (NroLegajo,Imagen) VALUES (" &
elLEgajo & ",'" & Upload.UploadedFiles(fileKey).FileName & "')"
oConn1.execute "INSERT INTO Imagenes (NroLegajo,Imagen) VALUES (" &
elLEgajo & ",'" & Upload.UploadedFiles(fileKey).FileName & "')"

'
next
else
resumen = "El nombre del archivo especificado en el formulario no es
valido en el sistema."
end if
'comentar la siguiente linea si no se desea mostrar el resumen
' SaveFiles = resumen
end function
%>

<HTML>
<HEAD>
<TITLE>Test Free ASP Upload</TITLE>
</HEAD>
<BODY>
<br>
<div style="border-bottom: #A91905 2px solid;font-size:16">Subir
archivos</div>
<div style='margin-left:150'>
<%dim oConn,RS,sql,Posicion,elLegajo
'Conectamos a nuestra BD.
Set oConn = Server.CreateObject ("ADODB.Connection")

oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("_private\plaweb.mdb")


Dim Tabla,Temp
Set Tabla=Server.CreateObject("adodb.recordset")

Temp="select NroLegajo,Nombre from titularesweb order by nombre"
Tabla.Open Temp, oConn

%>

<form name="frmSend" method="POST" enctype="multipart/form-data"
action="pruebaupload.asp">
<select size="1" name="D1">

<%do while not tabla.eof %>

<Option><%=Tabla.Fields("NroLegajo") & "-" &
Tabla.Fields("nombre")%></option>

<%tabla.movenext
loop
tabla.close%>

</select><p>&nbsp;</p>
<p>Archivo 1: <input name="attach1" type="file" size="35"><br>
Archivo 2: <input name="attach2" type="file" size="35"><br>
Archivo 3: <input name="attach3" type="file" size="35"><br>
Archivo 4: <input name="attach4" type="file" size="35"><br>
<br>
<input type=submit value="Upload">
</p>
</form>

<BR></div>
<%
'solo llamo al UPLOAD si hay envio de formulario
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
response.write "Request D1" & Request("D1")
Posicion=INSTR("-",Request("D1"))
response.write "posicion" & posicion
elLEgajo=left(Request("D1"),posicion)
response.write "ellegajo" & elLEgajo

'Hace el upload de los archivos enviados y muestra el resumen response.write
SaveFiles()
end if
%>
</BODY>
</HTML>
 

Leer las respuestas

#1 MEVB
14/09/2009 - 15:09 | Informe spam
Hola Veronica

Los formularios del tipo [enctype="multipart/form-data"] se manejan distinto
a los tradicionales para el envío de datos contenidos en campos INPUT.
Por eso no te sirve el Request.Form("tu_combo").
Cuando usas [enctype="multipart/form-data"], debes utilizar otra forma para
capturar el dato contenido en el combo. Es la forma "manual" o "picapiedra".
Lamentablemente, no se como se hace exactamente para decirte.
Tienes que revisar las librerías contenidas en tu include para guiarte en
como hacen alli la captura del archivo.
Creo que el proceso para capturar el valor del combo es muy parecido.
La otra opción es que lo hagas en procesos separados.

Saludos
MV



"Veronica Risso" escribió en el mensaje
news:
Hola Grupo: Estoy usando un programa que saqué de algún lado de internet
para subir archivos llamado pruebaupload.asp
Hasta ahi todo bien. El tema es que le he estado haciendo modificaciones,
para que ahora aparte de subir la imagen grabe en una tabla un par de
datos sacados de un combo y el nombre de la imagen, pero el problema está
en que "no se ve" el valor del combo (en este caso llamado D1). Adjunto el
código completo, fíjense que en algunos lugares voy poniendo
response.write para ver los valores que van teniendo los datos y el tema
pasa porque el Request("D1") no muestra el valor de la selección.
Cualquier ayuda, agradezco desde ya. Tiene un include que no afecta porque
son solo funciones para subir los archivos, igualmente si alguien lo
necesita se lo mando
El Código
_______________________________________________
<%
option explicit
Response.Expires = -1
Server.ScriptTimeout = 600
%>
<!-- #include file="freeaspupload.asp" -->
<%
' ****************************************************
' Cambiar el valor de la siguiente variable
' para indicar el directorio de destino.
' El directorio indicado debe tener permisos de escritura
' de caso contrario el script fallará mostrando un error.
Dim uploadsDirVar
uploadsDirVar = server.mappath("/fotos")

' ****************************************************

function SaveFiles

'Conectamos a nuestra BD.
dim oConn1
Set oConn1 = Server.CreateObject ("ADODB.Connection")

oConn1.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("_private\plaimagenes.mdb")


Dim Upload, fileName, fileSize, ks, i, fileKey, resumen
Set Upload = New FreeASPUpload
Upload.Save(uploadsDirVar)
' If something fails inside the script, but the exception is handled
If Err.Number <> 0 then Exit function
SaveFiles = ""
ks = Upload.UploadedFiles.keys
if (UBound(ks) <> -1) then
resumen = "<B>Archivos subidos:</B> "
for each fileKey in Upload.UploadedFiles.keys
resumen = resumen & Upload.UploadedFiles(fileKey).FileName & " (" &
Upload.UploadedFiles(fileKey).Length & "B) "
'

response.write "INSERT INTO Imagenes (NroLegajo,Imagen) VALUES (" &
elLEgajo & ",'" & Upload.UploadedFiles(fileKey).FileName & "')"
oConn1.execute "INSERT INTO Imagenes (NroLegajo,Imagen) VALUES (" &
elLEgajo & ",'" & Upload.UploadedFiles(fileKey).FileName & "')"

'
next
else
resumen = "El nombre del archivo especificado en el formulario no es
valido en el sistema."
end if
'comentar la siguiente linea si no se desea mostrar el resumen
' SaveFiles = resumen
end function
%>

<HTML>
<HEAD>
<TITLE>Test Free ASP Upload</TITLE>
</HEAD>
<BODY>
<br>
<div style="border-bottom: #A91905 2px solid;font-size:16">Subir
archivos</div>
<div style='margin-left:150'>
<%dim oConn,RS,sql,Posicion,elLegajo
'Conectamos a nuestra BD.
Set oConn = Server.CreateObject ("ADODB.Connection")

oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("_private\plaweb.mdb")


Dim Tabla,Temp
Set Tabla=Server.CreateObject("adodb.recordset")

Temp="select NroLegajo,Nombre from titularesweb order by nombre"
Tabla.Open Temp, oConn

%>

<form name="frmSend" method="POST" enctype="multipart/form-data"
action="pruebaupload.asp">
<select size="1" name="D1">

<%do while not tabla.eof %>

<Option><%=Tabla.Fields("NroLegajo") & "-" &
Tabla.Fields("nombre")%></option>

<%tabla.movenext
loop
tabla.close%>

</select><p>&nbsp;</p>
<p>Archivo 1: <input name="attach1" type="file" size="35"><br>
Archivo 2: <input name="attach2" type="file" size="35"><br>
Archivo 3: <input name="attach3" type="file" size="35"><br>
Archivo 4: <input name="attach4" type="file" size="35"><br>
<br>
<input type=submit value="Upload">
</p>
</form>

<BR></div>
<%
'solo llamo al UPLOAD si hay envio de formulario
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
response.write "Request D1" & Request("D1")
Posicion=INSTR("-",Request("D1"))
response.write "posicion" & posicion
elLEgajo=left(Request("D1"),posicion)
response.write "ellegajo" & elLEgajo

'Hace el upload de los archivos enviados y muestra el resumen
response.write SaveFiles()
end if
%>
</BODY>
</HTML>


Preguntas similares