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

Descargar archivo sin que el cliente vea la ruta

Estas en el tema de Descargar archivo sin que el cliente vea la ruta en el foro de ASP Clásico en Foros del Web. Hola a todos. Los usuarios descargan ciertos archivos desde una página, haciendo click sobre un icono. El problema que tengo es que no quiero que ...
  #1 (permalink)  
Antiguo 28/09/2007, 04:45
 
Fecha de Ingreso: febrero-2003
Ubicación: Sevilla
Mensajes: 23
Antigüedad: 22 años, 3 meses
Puntos: 0
Descargar archivo sin que el cliente vea la ruta

Hola a todos.
Los usuarios descargan ciertos archivos desde una página, haciendo click sobre un icono.
El problema que tengo es que no quiero que se vea la URL donde se ubican los archivos, para que no puedan acceder sin pasar por una página de acceso.

¿Alguna idea? Gracias.
  #2 (permalink)  
Antiguo 28/09/2007, 05:51
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Descargar archivo sin que el cliente vea la ruta

Te pongo un script que uso yo para suministrar facturas, actualizaciones, etc. Este tiene dos parametros: El nombre final que va a tener el archivo (name2) y el archivo original junto con su path (que puedes buscarlo en una BD o tenerlo en una constante) que es name1:

Código:
<%

Response.Buffer = True
Response.Clear 

server.ScriptTimeout = 60000
Dim strFilePath, strFileSize, strFileName
 
 Const adTypeBinary = 1
 
 name1 = request.QueryString("n1")
 name2 = request.QueryString("n2")
 strFilePath = ""
 strFileName = name1
 
  set FSO = Server.CreateObject("Scripting.FileSystemObject")
  if fso.FileExists(strFileName) then

      set oFile = FSO.GetFile(strFileName)
      strFileSize = oFile.Size
     
     'Response.Clear
 
    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Open
    objStream.Type = adTypeBinary
    objStream.LoadFromFile(strFileName)
 
    strFileType = right(strFileName, len(strFileName) - instrrev(strFileName, "."))
 
    Select Case strFileType
        Case "asf"
            ContentType = "video/x-ms-asf"
        Case "avi"
            ContentType = "video/avi"
        Case "doc"
            ContentType = "application/msword"
        Case "zip"
            ContentType = "application/zip"
        Case "xls"
            ContentType = "application/vnd.ms-excel"
        Case "gif"
            ContentType = "image/gif"
        Case "jpg", "jpeg"
            ContentType = "image/jpeg"
        Case "wav"
            ContentType = "audio/wav"
        Case "mp3"
            ContentType = "audio/mpeg3"
        Case "mpg", "mpeg"
            ContentType = "video/mpeg"
        Case "rtf"
            ContentType = "application/rtf"
          Case "htm", "html"
            ContentType = "text/html"
          Case "asp"
            ContentType = "text/asp"
        Case Else
            'Para el resto
            ContentType = "application/octet-stream"
    End Select
 
 
     Response.AddHeader "Content-Disposition", "attachment; filename=" & name2
     Response.AddHeader "Content-Length", strFileSize
     
     Response.Charset = "UTF-8"
     Response.ContentType = "application/octet-stream"
 
     Response.BinaryWrite(objStream.Read)
     Response.Flush
     objStream.Close
     Set objStream = Nothing
 
 else
 
     response.Write("archivo " & strFileName & " no existe")
 
 end if
%>
El propio Script genera el archivo (ya sea .exe, .doc, .loquesea)

http://www.misitio.com/download.asp?n1=factura_0001.doc&n2=c:\misdocs\ff3 45.doc

Modificando un poco el script puedes evitar enviar esa informacion tomandola de otras fuentes

http://www.misitio.com/download.asp?id=34

Donde id puede ser el campo clave de un registro en una tabla que contenga la información pertinente.

RECUERDA QUE EL SCRIPT NO DEBE LLEVAR NINGUN CONTENT-TYPE YA QUE EL MISMO LO GENERA.



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 01/10/2007, 04:10
 
Fecha de Ingreso: agosto-2007
Mensajes: 665
Antigüedad: 17 años, 9 meses
Puntos: 4
Re: Descargar archivo sin que el cliente vea la ruta

Lo que puedes hacer es que el archivo lo escribes en la pagina web y el usuario descarga la pagina web, de esa forma no conocería la ruta real del archivo
  #4 (permalink)  
Antiguo 03/10/2007, 10:54
 
Fecha de Ingreso: febrero-2003
Ubicación: Sevilla
Mensajes: 23
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Descargar archivo sin que el cliente vea la ruta

Gracias Tammander.

RCalle66, no te entiendo muy bien ¿puedes explicármelo un poco mejor?
  #5 (permalink)  
Antiguo 05/10/2007, 09:13
 
Fecha de Ingreso: diciembre-2003
Mensajes: 190
Antigüedad: 21 años, 5 meses
Puntos: 0
Re: Descargar archivo sin que el cliente vea la ruta

Yo queria saber si este codigo solo vale para archivos locales. Lo que yo quiero hacer es que me envie un archivo situado en otro servidor pero que no se vea la url


es esto posible?
gracias
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 17:28.