Descarga de ficheros al cliente

24/02/2004 - 17:05 por dacadco | Informe spam
Hola. Imagino que será sencillo, pero no conozco como se hace: ¿como
puedo dar la opción de que un cliente se baje un fichero? Es decir, yo tengo
una aplicación, y en base a unos datos que he recogido del usuario, se
genera un fichero de resultados. Es este fichero, el que quiero que se pueda
bajar el usuario. Espero no haberos liado.

Un saludo

Preguntas similare

Leer las respuestas

#1 Dani Castillo
24/02/2004 - 17:34 | Informe spam
pon solo un enlace a tu fichero

<a href="mifichero.ext" > bajar fichero </a>

dependiendo del cliente puede tener configurado para ver directamente el
archivo (por ejemplo ficheros de texto plano) o no, pero eso ya no depende
de ti (puede forzarse el que aparezca la ventana de guardar como pero no lo
recomiendo)

dani

"dacadco" escribió en el mensaje
news:utrvODv#
Hola. Imagino que será sencillo, pero no conozco como se hace: ¿como
puedo dar la opción de que un cliente se baje un fichero? Es decir, yo


tengo
una aplicación, y en base a unos datos que he recogido del usuario, se
genera un fichero de resultados. Es este fichero, el que quiero que se


pueda
bajar el usuario. Espero no haberos liado.

Un saludo


Respuesta Responder a este mensaje
#2 urko
24/02/2004 - 17:49 | Informe spam
Yo añadiria como ha dicho Dani un link.
Con un texto indicando boton derecho guardar
Con el aspsmartupload se puede hacer que aparezca el mensaje de guardar,
pero se me ha dado el caso que ha bajado algo que no tenia nada que ver
saludos
urko


"Dani Castillo" <danicastilloarrobahotmail.com> escribió en el mensaje
news:#Ux#KQv#
pon solo un enlace a tu fichero

<a href="mifichero.ext" > bajar fichero </a>

dependiendo del cliente puede tener configurado para ver directamente el
archivo (por ejemplo ficheros de texto plano) o no, pero eso ya no depende
de ti (puede forzarse el que aparezca la ventana de guardar como pero no


lo
recomiendo)

dani

"dacadco" escribió en el mensaje
news:utrvODv#
> Hola. Imagino que será sencillo, pero no conozco como se hace:


¿como
> puedo dar la opción de que un cliente se baje un fichero? Es decir, yo
tengo
> una aplicación, y en base a unos datos que he recogido del usuario, se
> genera un fichero de resultados. Es este fichero, el que quiero que se
pueda
> bajar el usuario. Espero no haberos liado.
>
> Un saludo
>
>


Respuesta Responder a este mensaje
#3 Dani Castillo
24/02/2004 - 17:55 | Informe spam
en algunos casos se puede forzar usando un asp "puro" que lee el fichero
(filesystem) y lo "vuelca" por response añadiendo antes las cabeceras de
http

ejemplo "pegau" de mi web a lo bruto

<%
' Por daniel castillo. http:\\www15.brinkster.com\danic\

Response.Buffer = true
Response.ContentType = "application/octet-tream"
Response.AddHeader "content-disposition","inline; filename=mifichero.ext"
Response.CacheControl = "public"
f=server.mappath("a.jpg")
set fso = createobject("scripting.filesystemobject")
set fichero = fso.getfile(f)
set ts = fichero.openastextstream

for i = 1 to fichero.size
c = ts.read(1)
response.binarywrite chrb(Asc(c))
next
ts.close
response.end
%>

(creo q en versiones posteriores se podria usar el response.binarywrite pero
no estoy mu seguro ahora)

el tema funciona, y va bien (salvo extrañamente para los pdf's que parecen
marearse cosa mala) , para texto sin problemas (y podria evitarse todo el
tema de filesystem, en lugar de guardar el fichero generarlo al vuelo en
response con las headers apropiadas, y sale el mensaje de guardar el
fichero -que realmente no existe en servidor- )

en cualquier caso si el fichero es de trabajo "normal" (excel, jpg's o lo
que sean) prefiero la opcion del link puro y duro (y simple, y robusto, no
dependes del motor asp para bajar el fichero, no saturas, etc)

que el cliente mantenga su configuracion de equipo como quiera, si desea
verlo directamente pues q lo vea, si quiere descargarlo idem, y como tu
dices un aviso de "para guardarlo boton derecho" para los clientes
despistadillos q siempre los hay jeje


la opcion de generar al vuelo o de forzar descarga pasando por un asp van
bien solo en determinados casos ,cuando por ejemplo no queremos ir dejando
los ficheros temporales en el servidor, o cuando se trata de datos
protegidos


"urko" escribió en el mensaje
news:OQahFXv#
Yo añadiria como ha dicho Dani un link.
Con un texto indicando boton derecho guardar
Con el aspsmartupload se puede hacer que aparezca el mensaje de guardar,
pero se me ha dado el caso que ha bajado algo que no tenia nada que ver
saludos
urko


"Dani Castillo" <danicastilloarrobahotmail.com> escribió en el mensaje
news:#Ux#KQv#
> pon solo un enlace a tu fichero
>
> <a href="mifichero.ext" > bajar fichero </a>
>
> dependiendo del cliente puede tener configurado para ver directamente el
> archivo (por ejemplo ficheros de texto plano) o no, pero eso ya no


depende
> de ti (puede forzarse el que aparezca la ventana de guardar como pero no
lo
> recomiendo)
>
> dani
>
> "dacadco" escribió en el mensaje
> news:utrvODv#
> > Hola. Imagino que será sencillo, pero no conozco como se hace:
¿como
> > puedo dar la opción de que un cliente se baje un fichero? Es decir, yo
> tengo
> > una aplicación, y en base a unos datos que he recogido del usuario, se
> > genera un fichero de resultados. Es este fichero, el que quiero que se
> pueda
> > bajar el usuario. Espero no haberos liado.
> >
> > Un saludo
> >
> >
>
>


Respuesta Responder a este mensaje
#4 joslpe
25/02/2004 - 12:28 | Informe spam
dacadco wrote:
Hola. Imagino que será sencillo, pero no conozco como se hace: ¿como
puedo dar la opción de que un cliente se baje un fichero? Es decir, yo tengo
una aplicación, y en base a unos datos que he recogido del usuario, se
genera un fichero de resultados. Es este fichero, el que quiero que se pueda
bajar el usuario. Espero no haberos liado.

Un saludo




Hola, puede ser tan sencillo como crear un enlace al fichero:
Si el fichero es un pdf <a href="Fichero.pdf">Descargar</a>.

Pero si deseas ocultar la ruta te recomiendo que uses la siguiente funcion.
<%
Sub enviarArchivo(stRuta, stGuardar)
Dim fs,f, ts, aFile
aFile=Server.Mappath(stRuta)
Response.Clear
Response.ContentType = "application/pdf"
Response.Buffer = True
set o = Server.CreateObject("ADODB.Stream")
o.Type = adTypeBinary
o.Open
o.LoadFromFile(aFile)
Response.AddHeader "content-disposition", "attachment;filename=" &
stGuardar
Response.BinaryWrite o.Read
o.Close
Set o = Nothing
Response.End
End Sub

'Descargo fichero
call enviarArchivo("/directorio/fichero.pdf","Mi_FICHERO_PDF.pdf")

%>

Donde StRuta es la ruta virtual o relativa del fichero y stGuardar es el
nombre con que quieres que se le guarde.
La funcion es para pdf, pero si es otro tipo de fichero cambia la linea
Response.ContentType

Espero que te sirva

JALG
Respuesta Responder a este mensaje
#5 hba
05/03/2004 - 10:31 | Informe spam
Una advertencia. Aquí nos volvimos locos con el tema.

El sistema que ha publicado joslpe y dani no funciona si se usa https y el
cliente tiene marcada la opción en el explorer de "Do not save encrypted
pages to disk"

Saludos.

"joslpe" wrote in message
news:c1i0s7$63m$
dacadco wrote:
> Hola. Imagino que será sencillo, pero no conozco como se hace:


¿como
> puedo dar la opción de que un cliente se baje un fichero? Es decir, yo


tengo
> una aplicación, y en base a unos datos que he recogido del usuario, se
> genera un fichero de resultados. Es este fichero, el que quiero que se


pueda
> bajar el usuario. Espero no haberos liado.
>
> Un saludo
>
>
Hola, puede ser tan sencillo como crear un enlace al fichero:
Si el fichero es un pdf <a href="Fichero.pdf">Descargar</a>.

Pero si deseas ocultar la ruta te recomiendo que uses la siguiente


funcion.
<%
Sub enviarArchivo(stRuta, stGuardar)
Dim fs,f, ts, aFile
aFile=Server.Mappath(stRuta)
Response.Clear
Response.ContentType = "application/pdf"
Response.Buffer = True
set o = Server.CreateObject("ADODB.Stream")
o.Type = adTypeBinary
o.Open
o.LoadFromFile(aFile)
Response.AddHeader "content-disposition", "attachment;filename=" &
stGuardar
Response.BinaryWrite o.Read
o.Close
Set o = Nothing
Response.End
End Sub

'Descargo fichero
call enviarArchivo("/directorio/fichero.pdf","Mi_FICHERO_PDF.pdf")

%>

Donde StRuta es la ruta virtual o relativa del fichero y stGuardar es el
nombre con que quieres que se le guarde.
La funcion es para pdf, pero si es otro tipo de fichero cambia la linea
Response.ContentType

Espero que te sirva

JALG
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida