Foros del Web » Programando para Internet » Javascript »

pasar datos de un popup a un form

Estas en el tema de pasar datos de un popup a un form en el foro de Javascript en Foros del Web. Bueno necesito saber como pasar los datos que recoge un popup a un textbox que hay en el formulario de la pagina que llama al ...

  #1 (permalink)  
Antiguo 24/04/2004, 03:58
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
Pregunta pasar datos de un popup a un form

Bueno necesito saber como pasar los datos que recoge un popup a un textbox que hay en el formulario de la pagina que llama al popup, y hacer que este se cierre al terminar el proceso dejando el dato en el form.

codigo pagina principal
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<script language="javascript" type="text/javascript">
function subFoto() {
win2=window.open("subir.asp","","width=150,height= 350,toolbar=no,directories=no,menubar=no,status=no ")
document.armar.foto.value=win2
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="armar" method="post" action="">
<input type="text" name="foto" class="frmText" size="25">
<input type="button" value=prueba name="btnFoto" onClick="subFoto()">
</form>
</body>
</html>
-------------------------------------------------------------------------
Copido del popup
----------------------

<title>subir fotos</title>
<script language="javascript">

var myTitle = window.dialogArguments;

function returnSelected() {
<%
Class xelUpload
' Maneja los formularios enviados como 'multipart/form-data' (ficheros)

Public Ficheros
Private eltosForm

'------------------------------------------------------------------------
Private Sub Class_Initialize()
set Ficheros = Server.CreateObject("Scripting.Dictionary")
set eltosForm = Server.CreateObject("Scripting.Dictionary")
End Sub
'------------------------------------------------------------------------
Private Sub Class_Terminate()
if IsObject(Ficheros) then
Ficheros.RemoveAll
set Ficheros = nothing
end if
if IsObject(eltosForm) then
eltosForm.RemoveAll
set eltosForm = nothing
end if
End Sub
'------------------------------------------------------------------------
'Permite hacer, por ejemplo: Response.Write(upload.Form("nombre"))
Public Property Get Form(campo)
if eltosForm.Exists(campo) then
Form = eltosForm.Item(campo)
else
Form = ""
end if
End Property
'------------------------------------------------------------------------
Public Sub Upload()
'Inicia el proceso. Debe llamarse ANTES DE HACER CUALQUIER OTRA COSA

Dim byteDatos, strControl
Dim iPosInicio, iPosFin, iPos, byteLimite, posLimite
Dim iPosFich, iPosLim

byteDatos = Request.BinaryRead(Request.TotalBytes)
iPosInicio = 1
iPosFin = InStrB(iPosInicio, byteDatos, str2byte(chr(13)))
if (iPosFin-iPosInicio) <= 0 then
'terminamos, no hay nada que leer
Exit Sub
end if
'extraemos el limite de principio y fin de los datos (p.e. -----2323g237623)
byteLimite = MidB(byteDatos, iPosInicio, iPosFin-iPosInicio)
posLimite = InStrB(1, byteDatos, byteLimite)

'terminamos cuando la posición del próximo límite sea igual
'a la del límite final, que lleva "--" detrás.
do until posLimite = InStrB(byteDatos, byteLimite & str2byte("--"))

iPos = InStrB(posLimite, byteDatos, str2byte("Content-Disposition"))
iPos = InStrB(iPos, byteDatos, str2byte("name=")) 'nombre del control en <FORM>
iPosInicio = iPos + 6 'me salto 6 caracteres -> name="
iPosFin = InStrB(iPosInicio, byteDatos, str2byte(chr(34))) 'busco las comillas de cierre
'y tengo el nombre del control!
strControl = byte2str(MidB(byteDatos, iPosInicio, iPosFin-iPosInicio))
'busco ahora los datos en sí del control
iPosFich =InStrB(posLimite, byteDatos, str2byte("filename="))
posLimite = InStrB(iPosFin, byteDatos, byteLimite)

'¿fichero o campo del formulario?
if iPosFich <> 0 and iPosFich < PosLimite then
'es un fichero, creo un nuevo objeto fichero y lo añado a Ficheros
Dim oFichero, strNombre, strForm
set oFichero = new Fichero

iPosInicio = iPosFich + 10 'me salto 10 caracteres -> filename="
iPosFin = InStrB(iPosInicio, byteDatos, str2byte(chr(34)))
strNombre = byte2str(MidB(byteDatos, iPosInicio, iPosFin-iPosInicio))
'quito la ruta inicial
oFichero.Nombre = Right(strNombre, Len(strNombre)-InStrRev(strNombre, "\")) '"

iPos = InStrB(iPosFin, byteDatos, str2byte("Content-Type:"))
iPosInicio = iPos + 14 'me salto Content-Type y un espacio!!
iPosFin = InStrB(iPosInicio, byteDatos, str2byte(chr(13))) 'busco el retorno de carro
oFichero.TipoContenido = byte2str(MidB(byteDatos, iPosInicio, iPosFin-iPosInicio))

iPosInicio = iPosFin + 4 'me salto los 3 retornos de carro que lleva!!!
iPosFin = InStrB(iPosInicio, byteDatos, byteLimite)-2 'dos caracteres atrás
oFichero.Datos = MidB(byteDatos, iPosInicio, iPosFin-iPosInicio)
if oFichero.Tamano > 0 then 'lo añado a la colección Ficheros!
Ficheros.Add strControl, oFichero
end if
else
'es un campo del formulario
iPos = InStrB(iPos, byteDatos, str2byte(chr(13)))
iPosInicio = iPos + 4
iPosFin = InStrB(iPosInicio, byteDatos, byteLimite)-2
'extraigo el valor del control del formulario!
strForm = byte2str(MidB(byteDatos, iPosInicio, iPosFin-iPosInicio))
if not eltosForm.Exists(strControl) then
eltosForm.Add strControl, strForm
else
eltosForm.Item(strControl) = eltosForm.Item(strControl)+","&strForm
end if
end if
'saltamos al siguiente límite
iPosLimite = InStrB(iPosLimite+LenB(byteLimite), byteDatos, byteLimite)
loop

End Sub
'------------------------------------------------------------------------
Private Function str2byte ( str )
Dim i, strbuf
for i = 1 to Len(str)
strbuf = strbuf & ChrB(AscB(Mid(str, i, 1)))
next
str2byte = strbuf
End Function
'------------------------------------------------------------------------
Private Function byte2str ( bin )
Dim i, bytebuf
for i = 1 to LenB(bin)
bytebuf = bytebuf & Chr(AscB(MidB(bin, i, 1)))
next
byte2str = bytebuf
End Function
'------------------------------------------------------------------------
End Class

'############################ Clase Fichero!!! ##########################

Class Fichero
'------------------------------------------------------------------------
Public Nombre
Public TipoContenido
Public Datos

'------------------------------------------------------------------------
Public Property Get Tamano()
Tamano = LenB(Datos)
End Property
'------------------------------------------------------------------------
Public Sub Guardar(ruta)
Dim oFSO, oFich
Dim i

if ruta = "" or Nombre = "" then Exit Sub
if Mid(ruta, Len(ruta)) <> "\" then '"
'añado la ultima barra a la ruta
ruta = ruta & "\" '"
end if

set oFSO = Server.CreateObject("Scripting.FileSystemObject")
if not oFSO.FolderExists(ruta) then Exit Sub
set oFich = oFSO.CreateTextFile(ruta & Nombre, true)

for i = 1 to LenB(Datos)
oFich.Write Chr(AscB(MidB(Datos, i, 1)))
next

oFich.Close
set oFSO = nothing
End Sub
'------------------------------------------------------------------------
Public Sub GuardarComo(nombrefichero, ruta)
Dim oFSO, oFich, i

if ruta = "" or nombrefichero = "" then Exit Sub
if Mid(ruta, Len(ruta)) <> "\" then '"
'añado la ultima barra a la ruta
ruta = ruta & "\" '"
end if

set oFSO = Server.CreateObject("Scripting.FileSystemObject")
if not oFSO.FolderExists(ruta) then Exit Sub
set oFich = oFSO.CreateTextFile(ruta & nombrefichero, true)

for i = 1 to LenB(Datos)
oFich.Write Chr(AscB(MidB(Datos, i, 1)))
next

oFich.Close
set oFSO = nothing


End Sub
'------------------------------------------------------------------------
Public Sub GuardarBD (byRef field)
if LenB(Datos) = 0 then Exit Sub

field.AppendChunk Datos
End Sub
End Class
'------------------------------------------------------------------------

Dim up, fich
set up = new xelUpload
up.Upload()

Response.Write("Número de ficheros subidos: " & up.Ficheros.Count & "<br>")
Response.Flush
For each fich in up.Ficheros.Items
Response.Write("<ul>")
Response.Write("<li>Nombre: <b>" & fich.Nombre & "</b></li>")
Response.Write("<li>Tamaño: <b>" & fich.Tamano & "</b> bytes (" & FormatNumber(fich.Tamano / (1024*1024)) & " Mb)</li>")
Response.Write("<li>Tipo MIME: <b>" & fich.TipoContenido & "</b></li>")
Response.Write("</ul>")

'Para guardarlo
' Con el nombre de fichero original:
fich.Guardar Server.MapPath("/uploads/")
' Con otro nombre:
' fich.GuardarComo nombrefichero, Server.MapPath("rutavirtual")
'----------------------------------------------------------------
Next

'Limpiamos objeto
set up = nothing
%>
window.returnValue = text; // set return value
window.close(); // close dialog
}

</script>
</head>
<body bgcolor="#CCCCCC">

<form action="subir.asp" method="post" enctype="multipart/form-data" onSubmit="Set(document.armar.foto.value); return false;">

<div align="center">
<%=textArchSubir%><input type="file" name="fichero" size="50">
<br>

<input type="submit" value="<%=textButtonSubir%>" onClick="returnSelected()">
</div>
</form>
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #2 (permalink)  
Antiguo 24/04/2004, 04:34
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
bueno corregi algo y funciona pero a medias
en la pagina principal le puse:
function subFoto() {
open("subir.asp","","width=150,height=350,toolbar= no,directories=no,menubar=no,status=no")
}

con el boton que llama esta funcion

en el popup
opener.document.armar.foto.value = <%=fich.Nombre%>;
close(); // close dialog

donde esto es una variable donde esta el nombre del archivo que quiero transferir a la ventana principal pero lo que hace es que cuando abre el poup no me muestra nada
Que puede ser?
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #3 (permalink)  
Antiguo 24/04/2004, 12:38
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
alguien me tira una soga, plissssss
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #4 (permalink)  
Antiguo 24/04/2004, 15:54
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Hola virla:

Perdona pero no he leído todo el mensaje, pero trataré de contestar el título:

Si tienes un formulario con un campo de texto de esta forma:

<form name=dato >
<input type=text name=entrada />
</form>

... y desde el popup quieres que entrada tenga "hola", tiene que haber algo en el popup que ponga:

opener.document.forms.dato.entrada.value = "hola";

Según tengas tu página, sabrás donde poner el script...

Saludos
  #5 (permalink)  
Antiguo 24/04/2004, 18:45
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
gracias pero no me sirve para nada lo que me dices, te pido que leas lo que escribi para que la proxima puedas ayudarme
gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #6 (permalink)  
Antiguo 25/04/2004, 02:05
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
a ver si de esta manera es mas facil

tengo en la pagina principal un campo de texto llamado foto con un boton que me habre un popup, si?
Bueno este popup lo que hace es subir un archivo al servidor, pero al terminar el proceso necesito que me mande el nombre del archivo que subi al campo texto que tengo en la pagina principal y cerrarse la popup

se entiende?
Bueno espero me den una mano con esto, gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #7 (permalink)  
Antiguo 25/04/2004, 02:28
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
La forma que estás usando es la correcta, prueba a poner comillas al valor a enviar


opener.document.armar.foto.value = "<%=fich.Nombre%>";
  #8 (permalink)  
Antiguo 25/04/2004, 02:32
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
De acuerdo temas unidos

Virla, por favor, mantén el mismo tema dentro del mismo post o sólo lograrás respuestas duplicadas
  #9 (permalink)  
Antiguo 25/04/2004, 08:06
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Hola virla:

Cita:
Mensaje Original por virla
gracias pero no me sirve para nada lo que me dices, te pido que leas lo que escribi para que la proxima puedas ayudarme
gracias
Puedes ver el número de mensajes que tengo, y te puedo asegurar que la gran mayoría de ellos han sido ayudas... ... también te puedo asegurar que suelo leer los mensajes, pero no siempre es fácil, y no siempre se tiene el tiempo y la paciencia para dar una respuesta adecuada.
Por esa razón, tal como tu pides que lea lo que has escrito (ya lo hice y no voy a "releer")... yo te pido que simplifiques tus cuestionamientos.

Es fácil copiar y pegar... y que se estrujen las neuronas los que responden en los foros ¿?...

Saludos
  #10 (permalink)  
Antiguo 25/04/2004, 09:21
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
el tema es que cuando uno simplifica despues te piden el codigo, por eso directamente pongo el codigo para que les sea mas facil contestarme, de cualquier manera cuando uno no tiene tiempo de contestar o ganas, lo recomendable es no contestar, No te parece?
De cualquier manera se que todos ponemos la mejor de las ondas
Gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #11 (permalink)  
Antiguo 25/04/2004, 09:24
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
tunait, es que ahora lo tengo sin las comillas y me sale error de script, la verdad que me esta volviendo muy loco este tema, si puedes ayudarme te paso el codigo nuevo para que lo veas y si quieres lo pruebes y te fijes en donde puede ser que este el drama, porque he buscado por todos lados he probado de todo pero no logro el cometido.
y la verdad que me urge terminar con esto porque es lo ultimo que me esta faltando
un abrazo fuerte
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #12 (permalink)  
Antiguo 25/04/2004, 15:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Hola otra vez:

No nos vayamos a pelear... ...

Lamentablemente hay mucho código que no es javascript y no lo controlo. La respuesta que te he dado creo que es correcta en javascript (incluso muy parecida a la de tunait )

Saludos
  #13 (permalink)  
Antiguo 26/04/2004, 14:59
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
alguien que me ayude plis
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #14 (permalink)  
Antiguo 27/04/2004, 03:24
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
no puedo creer que nadie sepa como soluciono este tema.
plisss ayudenme
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #15 (permalink)  
Antiguo 27/04/2004, 11:27
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
bueno ya descubri algo significativo, el tema es que cuando le saco la variable me ejecuta el script

<script language="Javascript1.2">
function cierra_ventana() {

opener.document.armar.foto.value = "hola";
close();
}
</script>
me cierra la ventana y me pone en el campo texto de la otra ventana el hola
y con la variable no me funciona
<script language="Javascript1.2">
function cierra_ventana() {

opener.document.armar.foto.value = <%=FileName%>;
close();
}
</script>

¿Que puede ser? ALGUIEN ME PUEDE AYUDAR PLISSSSSSSSSSSSSSSSSSSS
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #16 (permalink)  
Antiguo 27/04/2004, 11:34
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
me olvide de algo, si a la variable le agrego las comillas como me dijeron arriba lo que hace es cerrar la ventana pero me manda el resultado vacio, puse el FileName en un dim para que me lo conserve pero nada.
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #17 (permalink)  
Antiguo 27/04/2004, 11:53
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Qué tal,

las comillas son obligadas en javascript, salvo que sea para una variable, que no es el caso.

Si no llega ningún valor, quiere decir que el valor no es escribe desde asp. Osea, que FileName te llega vacía. ¿de dónde debe tomar su valor filename? (realmente el problema no lo tienes en javascript, si no desde asp)
  #18 (permalink)  
Antiguo 27/04/2004, 12:18
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
el valor lo toma de aqui
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile (Server.MapPath ("\fotos") & "\" & FileName, ForWriting, True)

el tema que el proseso de upload del archivo me lo ejecuta bien es mas al finalizar el FileName me imprime que el archivo se subio al servidor

Archivo subido <%=FileName%> archivo ya está en el servidor.<BR>
debajo de esto esta:
<INPUT type="button" onclick="cierra_ventana()" value="Cerrar" >
que llama la function de javascript

la verdad me estoy volviendo loco, pliss tunait dame una mano que se que vos sos muy buena en esto
gracias linda
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #19 (permalink)  
Antiguo 27/04/2004, 12:28
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
pero te imprime algo en esta linea?

Archivo subido <%=FileName%> archivo ya está en el servidor.<BR>

es decir, el navegador muestra esto

Archivo subido archivo ya está en el servidor.<BR>

o algún nombre de archivo

Archivo subido nombredearchivo archivo ya está en el servidor.<BR>

??
  #20 (permalink)  
Antiguo 27/04/2004, 15:14
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
Archivo subido nombredearchivo archivo ya está en el servidor
si esto es lo que imprime
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #21 (permalink)  
Antiguo 28/04/2004, 02:19
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Pues no sé, tal vez el lugar en donde tienes las líneas de javascript se escriben antes de que la variable tome su valor desde asp y por eso no se escribe. Lo único que se me ocurre es que coloques las líneas javascript debajo de donde sí imprimer el valor desde asp


Archivo subido <%=FileName%> archivo ya está en el servidor.<BR>
<script language="javascript">
opener.document.armar.foto.value = <%=fich.Nombre%>;
close(); // close dialog
</script>

a ver si así lo recoge...
  #22 (permalink)  
Antiguo 28/04/2004, 03:24
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
ya lo he probado de todas las formas arriba de todo abajo como lo pusistes vos en el medio, y la verdad es que no pasa nada.
si te subo los archivos vos no podes revisarlos aver que puede ser? de cualquier modo lo probare de nuevo.
gracias tunait siempre me haz ayudado y siempre estoy agradecido por el sistema de tiempo de lectura que me realizastes. hace como dos años.
gracias de corazon
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #23 (permalink)  
Antiguo 28/04/2004, 03:29
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
No hay de qué


esos archivos van contra una base de datos?
  #24 (permalink)  
Antiguo 28/04/2004, 05:42
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
los que te mando no pero es funcional
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #25 (permalink)  
Antiguo 28/04/2004, 05:52
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
No te aseguro que pueda lograr nada, pero envíamelos en un zip a tunait arroba yahoo punto com

sobre todo envíamelo en un zip, que yahoo tiene la fea costumbre de alterar los contenidos de los correos en lo que a código se refiere
  #26 (permalink)  
Antiguo 28/04/2004, 06:07
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
... por cierto, avísame cuando me lo hayas enviado que del correo de yahoo no me llega aviso
  #27 (permalink)  
Antiguo 28/04/2004, 06:14
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
ya te mande los archivos, espero que puedas solucionarlo.
a el que se ejecuta primero es el prueba.asp y el upload.asp es el popup
gracias de nuevo
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #28 (permalink)  
Antiguo 28/04/2004, 06:36
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Vale, era lo que te comentaba, en el momento en que se trata de escribir la variable desde asp el valor aún no se ha asignado, por eso llegaba vacía.

prueba así

Código:
<%@LANGUAGE="VBSCRIPT"%>
<%response.buffer=true%>

<%
Func = Request("Func")
if isempty(Func) Then
Func = 1
End if
Select Case Func
Case 1
%>

<table width="360" border="0" align="center">
<tr>
<td> 
<div align="center">Selecciona una imagen para subir. </div>
</td>
</tr>
</table>
<form enctype="multipart/form-data" action="upload.asp?func=2" method=POST id=form1 name=form1> 
<table align="center">
<tr> 
<td>&nbsp;</td>
</tr>
<tr> 
<td><font color="#330066" size="2">Pulsa en el botón examinar y elige el archivo 
de tu ordenador.<br>
<br>
</font></td>
</tr>
<tr> 
<td><font color="#330066" size="2">Luego pulsa el botón subir.<br>
<br>
</font></td>
</tr>
<tr> 
<td><strong><font color="#330066" size="2">Nombre del archivo...</font></strong></td>
</tr>
<tr> 
<td> <font size="2"> 
<input name=File1 size=30 type=file>
<br>
</font></td>
</tr>
<tr> 
<td align=left> 
<input type="submit" value="Subir">
<br>
<br>
</td>
</tr>
<tr> 
<td><font color="#330066" size="2">NOTA: Espera, recibirás una notificación 
cuando el archivo haya sido subido</font><font size="2">.<br>
<br>
</font></td>
</tr>
</table>

<%
Case 2
ForWriting = 2
adLongVarChar = 201
lngNumberUploaded = 0

'Get binary data from form 
noBytes = Request.TotalBytes 
binData = Request.BinaryRead (noBytes)
'convery the binary data to a string
Set RST = CreateObject("ADODB.Recordset")
LenBinary = LenB(binData)

if LenBinary > 0 Then
RST.Fields.Append "myBinary", adLongVarChar, LenBinary
RST.Open
RST.AddNew
RST("myBinary").AppendChunk BinData
RST.Update
strDataWhole = RST("myBinary")
End if

strBoundry = Request.ServerVariables ("HTTP_CONTENT_TYPE")
lngBoundryPos = instr(1,strBoundry,"boundary=") + 8 
strBoundry = "--" & right(strBoundry,len(strBoundry)-lngBoundryPos)
'Get first file boundry positions.
lngCurrentBegin = instr(1,strDataWhole,strBoundry)
lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1
Do While lngCurrentEnd > 0
'Get the data between current boundry and remove it from the whole.
strData = mid(strDataWhole,lngCurrentBegin, lngCurrentEnd - lngCurrentBegin)
strDataWhole = replace(strDataWhole,strData,"")

'Get the full path of the current file.
lngBeginFileName = instr(1,strdata,"filename=") + 10
lngEndFileName = instr(lngBeginFileName,strData,chr(34)) 
'Make sure they selected at least one file. 
if lngBeginFileName = lngEndFileName and lngNumberUploaded = 0 Then

Response.Write "<H2> Ha ocurrido el siguiente error.</H2>"
Response.Write "Debes elegir un archivo para subir"
Response.Write "<BR><BR>Pulsa el botón volver, realiza la corrección."
Response.Write "<BR><BR><INPUT type='button' onclick='history.go(-1)' value='<< Volver' id='button'1 name='button'1>"
Response.End 
End if
'There could be one or more empty file boxes. 
if lngBeginFileName <> lngEndFileName Then
strFilename = mid(strData,lngBeginFileName,lngEndFileName - lngBeginFileName)

'Loose the path information and keep jus
' t the file name. 
tmpLng = instr(1,strFilename,"\")
Do While tmpLng > 0
PrevPos = tmpLng
tmpLng = instr(PrevPos + 1,strFilename,"\")
Loop

FileName = right(strFilename,len(strFileName) - PrevPos)

'Get the begining position of the file data sent.
'if the file type is registered with the
' browser then there will be a Content-Type
lngCT = instr(1,strData,"Content-Type:")

if lngCT > 0 Then
lngBeginPos = instr(lngCT,strData,chr(13) & chr(10)) + 4
Else
lngBeginPos = lngEndFileName
End if
'Get the ending position of the file data sent.
lngEndPos = len(strData) 

'Calculate the file size. 
lngDataLenth = lngEndPos - lngBeginPos
'Get the file data 
strFileData = mid(strData,lngBeginPos,lngDataLenth)
'Create the file. 
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile (Server.MapPath ("\fotos") & "\" & FileName, ForWriting, True)
Dim FileName

f.Write strFileData
Set f = nothing
Set fso = nothing

lngNumberUploaded = lngNumberUploaded + 1

End if

'Get then next boundry postitions if any
' .
lngCurrentBegin = instr(1,strDataWhole,strBoundry)
lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1
loop
End Select 
%>

Archivo subido 
<%=FileName%> archivo ya está en el servidor.<br>
<input type="button" onClick="cierra_ventana()" value="Cerrar" > 
<script language="Javascript1.2">
function cierra_ventana() {
	var NomArch
	NomArch="<%=FileName%>"
	opener.document.armar.foto.value = NomArch;
    close();
}	  
</script>
</BODY>
</HTML>
a mi me funcionó ok
  #29 (permalink)  
Antiguo 28/04/2004, 08:26
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 5 meses
Puntos: 1
la verdad que no se que fue lo que hicistes pero funciona, mira que lo he probado de esa forma, pero mirando bien la diferencia esta en esta parte
NomArch="<%=FileName%>"
creo que eso no lo havia probado
bueno mil millones de gracias
un beso grandote de tu admirador
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #30 (permalink)  
Antiguo 28/04/2004, 09:08
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Bueno, simplemente trasladé el javascript unas líneas más abajo de donde tomaba su valor FileName en el servidor

Mil millones de denadas me alegra que al final pudieras solucionarlo

Un saludote
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 19:36.