Descargas y cuadros de dialogo

10/10/2004 - 17:25 por Alberto Valle | Informe spam
Hola a todos:

Estoy intentando realizar descargas automatizadas con
BINARYWRITE, gracias a la ayuda de un forero enrollao :-)

El problema que surge, es que me aparecen 2 cuadros de diálogo
consecutivos, no debiendo aparecer más que el segundo:

- el primero dice, "Está descargando el archivo pagina.ASP". Aquí
está el problema, pues esta página es la que contiene el Script en
ASP, y está claro que no debería aparecer.
- el 2º cuadro de diálogo, que es el correcto, aparece al pulsar
"Abrir..." y m descarga el fichero real", por ejemplo "Está
descargando el archivo fichero.doc"

¿Como evito que aparezca el 1er cuadro de diálogo?


Quiero aclarar que la página ASP nunca llega a descargarse realmente,
¡menos mal! O:-), pero hay que aceptar este mensaje para que aparezca
e l 2º con el fichero, que es el que únicamente me interesa que
aparezca.

Hhe probado con distintos valores para response.Addheader y
contentType, y en distinto orden. Os envío parte del código.

Muchas gracias por vuestro tiempo.

'
Set fso = CreateObject("Scripting.FileSystemObject")
Set fichero = fso.GetFile("c:\descargas\fichero.doc") '--por ejemplo

response.contentType = "application/x-unknown"
'-- he probado con y sin ella y con distintos valores '
' -- "application/x-unknown" , "application/octet-stream",
"application/msword", etc,

response.addHeader "Content-Disposition", "attachment; filename=" &
chr(34) & vfich & chr(34)

response.BinaryWrite getBinaryFile( "c:\descargas\fichero.doc"))


function getBinaryFile(fileSpec)
Dim adTypeBinary
adTypeBinary = 1
Dim oStream
set oStream = server.createobject("ADODB.Stream")
oStream.Open
oStream.Type = adTypeBinary
oStream.LoadFromFile fileSpec
getBinaryFile = oStream.read
set oStream = Nothing
end function
'

Preguntas similare

Leer las respuestas

#1 Miguel Gonzalez
11/10/2004 - 09:08 | Informe spam
Hola Alberto.

¿Cómo llamas a la "pagina.asp"?

Creo que tu problema radica en la forma de efectuar la llamada a la
página. Revisa por ese lado.

Saludos!
Miguel


Alberto Valle wrote:
Hola a todos:

Estoy intentando realizar descargas automatizadas con
BINARYWRITE, gracias a la ayuda de un forero enrollao :-)

El problema que surge, es que me aparecen 2 cuadros de diálogo
consecutivos, no debiendo aparecer más que el segundo:

- el primero dice, "Está descargando el archivo pagina.ASP". Aquí
está el problema, pues esta página es la que contiene el Script en
ASP, y está claro que no debería aparecer.
- el 2º cuadro de diálogo, que es el correcto, aparece al pulsar
"Abrir..." y m descarga el fichero real", por ejemplo "Está
descargando el archivo fichero.doc"

¿Como evito que aparezca el 1er cuadro de diálogo?


Quiero aclarar que la página ASP nunca llega a descargarse realmente,
¡menos mal! O:-), pero hay que aceptar este mensaje para que aparezca
e l 2º con el fichero, que es el que únicamente me interesa que
aparezca.

Hhe probado con distintos valores para response.Addheader y
contentType, y en distinto orden. Os envío parte del código.

Muchas gracias por vuestro tiempo.

'
Set fso = CreateObject("Scripting.FileSystemObject")
Set fichero = fso.GetFile("c:\descargas\fichero.doc") '--por ejemplo

response.contentType = "application/x-unknown"
'-- he probado con y sin ella y con distintos valores '
' -- "application/x-unknown" , "application/octet-stream",
"application/msword", etc,

response.addHeader "Content-Disposition", "attachment; filename=" &
chr(34) & vfich & chr(34)

response.BinaryWrite getBinaryFile( "c:\descargas\fichero.doc"))


function getBinaryFile(fileSpec)
Dim adTypeBinary
adTypeBinary = 1
Dim oStream
set oStream = server.createobject("ADODB.Stream")
oStream.Open
oStream.Type = adTypeBinary
oStream.LoadFromFile fileSpec
getBinaryFile = oStream.read
set oStream = Nothing
end function
'
Respuesta Responder a este mensaje
#2 Alberto Valle
12/10/2004 - 23:43 | Informe spam
Que tal Miguel:

La PAGINA.ASP es la que contiene el código para la descarga, y se
llama así "PAGINA,ASP". Es un ejemplo, quizás fuera más propiado
llamarla DESCARGA.ASP.

La llamo directamente, escribiendo su URL en la barra de direcciones.
Antes la llamaba por un FORM, pero como me daba estos problemas hice
esta página única asignando las rutas y el fichero como constantes.

Seguramente el fallo sea algo en la llamada. he probado a activar el
BUffer y borrarlo con CLEAR antes de inicializar el STREAM pero ni pr
esas.

Gracias, y un saludo.

Hola Alberto.

¿Cómo llamas a la "pagina.asp"?

Creo que tu problema radica en la forma de efectuar la llamada a la
página. Revisa por ese lado.

Saludos!
Miguel


Alberto Valle wrote:
Hola a todos:

Estoy intentando realizar descargas automatizadas con
BINARYWRITE, gracias a la ayuda de un forero enrollao :-)

El problema que surge, es que me aparecen 2 cuadros de diálogo
consecutivos, no debiendo aparecer más que el segundo:

- el primero dice, "Está descargando el archivo pagina.ASP". Aquí
está el problema, pues esta página es la que contiene el Script en
ASP, y está claro que no debería aparecer.
- el 2º cuadro de diálogo, que es el correcto, aparece al pulsar
"Abrir..." y m descarga el fichero real", por ejemplo "Está
descargando el archivo fichero.doc"

¿Como evito que aparezca el 1er cuadro de diálogo?


Quiero aclarar que la página ASP nunca llega a descargarse realmente,
¡menos mal! O:-), pero hay que aceptar este mensaje para que aparezca
e l 2º con el fichero, que es el que únicamente me interesa que
aparezca.

Hhe probado con distintos valores para response.Addheader y
contentType, y en distinto orden. Os envío parte del código.

Muchas gracias por vuestro tiempo.

'
Set fso = CreateObject("Scripting.FileSystemObject")
Set fichero = fso.GetFile("c:\descargas\fichero.doc") '--por ejemplo

response.contentType = "application/x-unknown"
'-- he probado con y sin ella y con distintos valores '
' -- "application/x-unknown" , "application/octet-stream",
"application/msword", etc,

response.addHeader "Content-Disposition", "attachment; filename=" &
chr(34) & "fichero.doc" & chr(34)

response.BinaryWrite getBinaryFile( "c:\descargas\fichero.doc"))


function getBinaryFile(fileSpec)
Dim adTypeBinary
adTypeBinary = 1
Dim oStream
set oStream = server.createobject("ADODB.Stream")
oStream.Open
oStream.Type = adTypeBinary
oStream.LoadFromFile fileSpec
getBinaryFile = oStream.read
set oStream = Nothing
end function
'
Respuesta Responder a este mensaje
#3 Miguel Gonzalez
13/10/2004 - 10:29 | Informe spam
Hola Alberto.

¿El problema es con todos los navegadores, o con un navegador específico? Si es sólo con un
navegador, mírate la configuración de seguridad del mismo.

En caso que pase con todos los navegadores: ¿Cuando llamas a cualquier otra página ASP en el
servidor te sale también el cuadro "descargar página"? En caso afirmativo, cabría revisar la
configuración del IIS.

En caso negativo, que sólo te salga el cuadro cuando llamas a la página de descarga sería
conveniente revisar el código de la misma. ¿Puedes remitirlo al foro?.

Saludos!
Miguel


Alberto Valle wrote:
Que tal Miguel:

La PAGINA.ASP es la que contiene el código para la descarga, y se
llama así "PAGINA,ASP". Es un ejemplo, quizás fuera más propiado
llamarla DESCARGA.ASP.

La llamo directamente, escribiendo su URL en la barra de direcciones.
Antes la llamaba por un FORM, pero como me daba estos problemas hice
esta página única asignando las rutas y el fichero como constantes.

Seguramente el fallo sea algo en la llamada. he probado a activar el
BUffer y borrarlo con CLEAR antes de inicializar el STREAM pero ni pr
esas.

Gracias, y un saludo.


Hola Alberto.

¿Cómo llamas a la "pagina.asp"?

Creo que tu problema radica en la forma de efectuar la llamada a la
página. Revisa por ese lado.

Saludos!
Miguel


Alberto Valle wrote:

Hola a todos:

Estoy intentando realizar descargas automatizadas con
BINARYWRITE, gracias a la ayuda de un forero enrollao :-)

El problema que surge, es que me aparecen 2 cuadros de diálogo
consecutivos, no debiendo aparecer más que el segundo:

- el primero dice, "Está descargando el archivo pagina.ASP". Aquí
está el problema, pues esta página es la que contiene el Script en
ASP, y está claro que no debería aparecer.
- el 2º cuadro de diálogo, que es el correcto, aparece al pulsar
"Abrir..." y m descarga el fichero real", por ejemplo "Está
descargando el archivo fichero.doc"

¿Como evito que aparezca el 1er cuadro de diálogo?


Quiero aclarar que la página ASP nunca llega a descargarse realmente,
¡menos mal! O:-), pero hay que aceptar este mensaje para que aparezca
e l 2º con el fichero, que es el que únicamente me interesa que
aparezca.

Hhe probado con distintos valores para response.Addheader y
contentType, y en distinto orden. Os envío parte del código.

Muchas gracias por vuestro tiempo.

'
Set fso = CreateObject("Scripting.FileSystemObject")
Set fichero = fso.GetFile("c:\descargas\fichero.doc") '--por ejemplo

response.contentType = "application/x-unknown"
'-- he probado con y sin ella y con distintos valores '
' -- "application/x-unknown" , "application/octet-stream",
"application/msword", etc,

response.addHeader "Content-Disposition", "attachment; filename=" &
chr(34) & "fichero.doc" & chr(34)

response.BinaryWrite getBinaryFile( "c:\descargas\fichero.doc"))


function getBinaryFile(fileSpec)
Dim adTypeBinary
adTypeBinary = 1
Dim oStream
set oStream = server.createobject("ADODB.Stream")
oStream.Open
oStream.Type = adTypeBinary
oStream.LoadFromFile fileSpec
getBinaryFile = oStream.read
set oStream = Nothing
end function
'






Respuesta Responder a este mensaje
#4 Sashka
13/10/2004 - 17:29 | Informe spam
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
No he probado tu código pero para que usas FSO??? y depsués no lo
"limpias"...

Prueba así:
<%

call getBinaryFile("c:\descargas\fichero.doc")

Function getBinaryFile(strFilePath)
Dim TypeBinary, oStream, binFile, nomb, s

if len(strFilePath)>0 then

Set oStream = Server.CreateObject("ADODB.Stream")

nomb = split(strFilePath,"/")(ubound(split(strFilePath,"/")))

TypeBinary = 1
oStream.Open
oStream.Type = TypeBinary
oStream.LoadFromFile strFilePath
binFile = oStream.read

oStream.Flush
if oStream.State = 1 then oStream.Close
Set oStream = Nothing

Response.Buffer = true
Response.Clear
Response.AddHeader "content-disposition", "attachment; filename=" & nomb
Response.ContentType = "application/" &
split(nomb,".")(ubound(split(nomb,".")))
Response.BinaryWrite binFile

end if

End Function

%>

Sashka
MS MVP Access
MCP ASP.Net

"Alberto Valle" escribió en el mensaje
news:
Que tal Miguel:

La PAGINA.ASP es la que contiene el código para la descarga, y se
llama así "PAGINA,ASP". Es un ejemplo, quizás fuera más propiado
llamarla DESCARGA.ASP.

La llamo directamente, escribiendo su URL en la barra de direcciones.
Antes la llamaba por un FORM, pero como me daba estos problemas hice
esta página única asignando las rutas y el fichero como constantes.

Seguramente el fallo sea algo en la llamada. he probado a activar el
BUffer y borrarlo con CLEAR antes de inicializar el STREAM pero ni pr
esas.

Gracias, y un saludo.

Hola Alberto.

¿Cómo llamas a la "pagina.asp"?

Creo que tu problema radica en la forma de efectuar la llamada a la
página. Revisa por ese lado.

Saludos!
Miguel


Alberto Valle wrote:
Hola a todos:

Estoy intentando realizar descargas automatizadas con
BINARYWRITE, gracias a la ayuda de un forero enrollao :-)

El problema que surge, es que me aparecen 2 cuadros de diálogo
consecutivos, no debiendo aparecer más que el segundo:

- el primero dice, "Está descargando el archivo pagina.ASP". Aquí
está el problema, pues esta página es la que contiene el Script en
ASP, y está claro que no debería aparecer.
- el 2º cuadro de diálogo, que es el correcto, aparece al pulsar
"Abrir..." y m descarga el fichero real", por ejemplo "Está
descargando el archivo fichero.doc"

¿Como evito que aparezca el 1er cuadro de diálogo?


Quiero aclarar que la página ASP nunca llega a descargarse realmente,
¡menos mal! O:-), pero hay que aceptar este mensaje para que aparezca
e l 2º con el fichero, que es el que únicamente me interesa que
aparezca.

Hhe probado con distintos valores para response.Addheader y
contentType, y en distinto orden. Os envío parte del código.

Muchas gracias por vuestro tiempo.

'
Set fso = CreateObject("Scripting.FileSystemObject")
Set fichero = fso.GetFile("c:\descargas\fichero.doc") '--por ejemplo

response.contentType = "application/x-unknown"
'-- he probado con y sin ella y con distintos valores '
' -- "application/x-unknown" , "application/octet-stream",
"application/msword", etc,

response.addHeader "Content-Disposition", "attachment; filename=" &
chr(34) & "fichero.doc" & chr(34)

response.BinaryWrite getBinaryFile( "c:\descargas\fichero.doc"))


function getBinaryFile(fileSpec)
Dim adTypeBinary
adTypeBinary = 1
Dim oStream
set oStream = server.createobject("ADODB.Stream")
oStream.Open
oStream.Type = adTypeBinary
oStream.LoadFromFile fileSpec
getBinaryFile = oStream.read
set oStream = Nothing
end function
'
Respuesta Responder a este mensaje
#5 Alberto Valle
13/10/2004 - 23:35 | Informe spam
Hola a todos:

Que tal Miguel. El código que utilizo es el mismo que escribí en mi
primer post. No, no aparecen prompts al llamar a las páginas ASP, solo
con cuando hago el download. Puede que tengas razón con lo de la
seguridad y que el problema sea local, aunque he hecho como me has
dicho y he ajustado al nivel más bajo de seguridad en Local. Uso,
Inet Explorer, jeje, y no he probado con otros O:-)

Sashka, pues lo cierto es que NO me ha funcionado, pero el resultado
ha cambiado, lo que puede ser una mejoría, ¿no crees? ;-). Ahora
gracias a tu ejemplo, el flujo binario del fichero se vuelca
directamente en el Navegador, y lo que veo es la codificación interna
del fichero (realmente ya había probado un ejemplo con ese resultado).
Gracias por la aclaración del CLEAR, me había colado.

He buscado mucho por ahí, y he visto un artículo bastante bueno sobre
el tema (después de probar ya todo lo habido y por haber), con
ejemplos hasta para enviar el flujo en trozos por si el fichero es
demasiado largo, e incluso COMENTA el problema de los 2 cuadros de
diálogo, ¡Vaya subidón de principio!; afirma que se debe a que se
envía dos veces el nombre del fichero. Pero entonces, digo yo que en
todo caso aparecería 2 veces el prompt del fichero, pero no primero el
de la propia página ASP y a continuación el del fichero como a mi me
pasa.

http://aspfaq.com/show.asp?id!61

Si a todos os funciona menos a mí, está claro que el problema debe
estar en algo de mi configuración local, o eso espero al menos.

Creo que desistiré de las descargas de este modo y me limitaré al
típico HREF :-(

Muchas gracias por vuestra ayuda de todas maneras.












El día Wed, 13 Oct 2004 10:29:31 -0500, "Sashka"
escribió:

¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
No he probado tu código pero para que usas FSO??? y depsués no lo
"limpias"...

Prueba así:
<%

call getBinaryFile("c:\descargas\fichero.doc")

Function getBinaryFile(strFilePath)
Dim TypeBinary, oStream, binFile, nomb, s

if len(strFilePath)>0 then

Set oStream = Server.CreateObject("ADODB.Stream")

nomb = split(strFilePath,"/")(ubound(split(strFilePath,"/")))

TypeBinary = 1
oStream.Open
oStream.Type = TypeBinary
oStream.LoadFromFile strFilePath
binFile = oStream.read

oStream.Flush
if oStream.State = 1 then oStream.Close
Set oStream = Nothing

Response.Buffer = true
Response.Clear
Response.AddHeader "content-disposition", "attachment; filename=" & nomb
Response.ContentType = "application/" &
split(nomb,".")(ubound(split(nomb,".")))
Response.BinaryWrite binFile

end if

End Function

%>

Sashka
MS MVP Access
MCP ASP.Net

"Alberto Valle" escribió en el mensaje
news:
Que tal Miguel:

La PAGINA.ASP es la que contiene el código para la descarga, y se
llama así "PAGINA,ASP". Es un ejemplo, quizás fuera más propiado
llamarla DESCARGA.ASP.

La llamo directamente, escribiendo su URL en la barra de direcciones.
Antes la llamaba por un FORM, pero como me daba estos problemas hice
esta página única asignando las rutas y el fichero como constantes.

Seguramente el fallo sea algo en la llamada. he probado a activar el
BUffer y borrarlo con CLEAR antes de inicializar el STREAM pero ni pr
esas.

Gracias, y un saludo.

Hola Alberto.

¿Cómo llamas a la "pagina.asp"?

Creo que tu problema radica en la forma de efectuar la llamada a la
página. Revisa por ese lado.

Saludos!
Miguel


Alberto Valle wrote:
Hola a todos:

Estoy intentando realizar descargas automatizadas con
BINARYWRITE, gracias a la ayuda de un forero enrollao :-)

El problema que surge, es que me aparecen 2 cuadros de diálogo
consecutivos, no debiendo aparecer más que el segundo:

- el primero dice, "Está descargando el archivo pagina.ASP". Aquí
está el problema, pues esta página es la que contiene el Script en
ASP, y está claro que no debería aparecer.
- el 2º cuadro de diálogo, que es el correcto, aparece al pulsar
"Abrir..." y m descarga el fichero real", por ejemplo "Está
descargando el archivo fichero.doc"

¿Como evito que aparezca el 1er cuadro de diálogo?


Quiero aclarar que la página ASP nunca llega a descargarse realmente,
¡menos mal! O:-), pero hay que aceptar este mensaje para que aparezca
e l 2º con el fichero, que es el que únicamente me interesa que
aparezca.

Hhe probado con distintos valores para response.Addheader y
contentType, y en distinto orden. Os envío parte del código.

Muchas gracias por vuestro tiempo.

'
Set fso = CreateObject("Scripting.FileSystemObject")
Set fichero = fso.GetFile("c:\descargas\fichero.doc") '--por ejemplo

response.contentType = "application/x-unknown"
'-- he probado con y sin ella y con distintos valores '
' -- "application/x-unknown" , "application/octet-stream",
"application/msword", etc,

response.addHeader "Content-Disposition", "attachment; filename=" &
chr(34) & "fichero.doc" & chr(34)

response.BinaryWrite getBinaryFile( "c:\descargas\fichero.doc"))


function getBinaryFile(fileSpec)
Dim adTypeBinary
adTypeBinary = 1
Dim oStream
set oStream = server.createobject("ADODB.Stream")
oStream.Open
oStream.Type = adTypeBinary
oStream.LoadFromFile fileSpec
getBinaryFile = oStream.read
set oStream = Nothing
end function
'





Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida