none
descargar un archivo txt

    Question

  • bienas tardes
    tengo un archivo para descargar
    pero no he encontrado la manera de hacerlo

    alquien podria colaborarme con ello

    atentamente


    Jaysson Avendaño
    Friday, February 05, 2010 7:00 PM

Answers

  • hola

    algo que no me cierra es porque tanto uso de Server.MapPath()

    prueba algo como esto

    String dlDir = @"Download/"
    String path = Server.MapPath(dlDir + Session("archivo").ToString());

    Dim toDownload As New FileInfo(path)

    If (toDownload.Exists) Then
        Response.Clear()
        Response.AddHeader("Content-Disposition", "attachment; filename=" + toDownload.Name)
        Response.AddHeader("Content-Length", toDownload.Length.ToString())
        Response.ContentType = "text/plain"
        Response.WriteFile(path)
        Response.End()
    End If


    veras que en el Response.WriteFile()
    se pone el path al archivo fisico


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Friday, February 05, 2010 8:01 PM
  • hola

    de casualidad estas usando AJAX

    Sys.WebForms.PageRequestManagerParserErrorException al hacer un postback parcial


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Friday, February 05, 2010 8:34 PM

All replies

  • hola


    podrias aplicar dos tecnicas

    - simplemetne pones en tu pagina un link apuntando al archivo

    o tambien puedes hacer algo como esto

    Forzar la descarga de archivos en nuestros Sitios Web


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Friday, February 05, 2010 7:10 PM
  • con el link me carga el archivo en el explorador
    y con la otra opcion no me funciona
    aun no entiendo por que

    Dim dlDir = Server.MapPath("~/Download") & "\"
                    Dim path = Server.MapPath(dlDir)
                    Dim toDownload As New FileInfo(Server.MapPath("~/Download") & "\" & Session("archivo").ToString())
                    'Response.Redirect("~/Download/" & Session("archivo").ToString())
                    'If (toDownload.Exists) Then
                    Response.Clear()
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + toDownload.Name)
                    Response.AddHeader("Content-Length", toDownload.Length.ToString())
                    Response.ContentType = "application/octet-stream"
                    Response.WriteFile(dlDir + filename)
                    Response.End()

    Friday, February 05, 2010 7:28 PM
  • ok si me imagine que era ese el problema por eso puse el link del articulo

    si aplicas al tecnica descripta alli estaras forzando para que simpre se descargue

    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Friday, February 05, 2010 7:30 PM
  • no el codigo no me funciona

    Dim

     

    filename As String = Request.QueryString.Get(Session("archivo").ToString())
    Dim dlDir = Server.MapPath("~/Download") & "\"
    Dim path = Server.MapPath(dlDir)
    Dim toDownload As New FileInfo(Server.MapPath("~/Download") & "\" & Session("archivo").ToString())
    If (toDownload.Exists) Then
    Response.Clear()
    Response.AddHeader(
    "Content-Disposition", "attachment; filename=" + toDownload.Name)
    Response.AddHeader(
    "Content-Length", toDownload.Length.ToString())
    Response.ContentType =
    "text/plain"
    Response.WriteFile("~/Download/" & filename)
    Response.End()
    End If


    Jaysson Avendaño
    Friday, February 05, 2010 7:44 PM
  • Corrección a tu código:

    Dim filename As String = Request.QueryString.Get(Session("archivo").ToString())
    
    'Dim dlDir = Server.MapPath("~/Download") & "\"
    Dim dlDir = "~/Download/"
    Dim path = Server.MapPath(dlDir & filename)
    
    'Dim toDownload As New FileInfo(Server.MapPath("~/Download") & "\" & Session("archivo").ToString())
    Dim toDownload As New FileInfo(path)
    
    If (toDownload.Exists) Then
       Response.Clear()
       Response.AddHeader("Content-Disposition", "attachment; filename=" + toDownload.Name)
       Response.AddHeader("Content-Length", toDownload.Length.ToString())
       Response.ContentType = "text/plain"
       
       'Cambia esta línea
       'Response.WriteFile("~/Download/" & filename)
       Response.WriteFile(path)
       
       Response.End()
    End If
    Friday, February 05, 2010 8:00 PM
  • hola

    algo que no me cierra es porque tanto uso de Server.MapPath()

    prueba algo como esto

    String dlDir = @"Download/"
    String path = Server.MapPath(dlDir + Session("archivo").ToString());

    Dim toDownload As New FileInfo(path)

    If (toDownload.Exists) Then
        Response.Clear()
        Response.AddHeader("Content-Disposition", "attachment; filename=" + toDownload.Name)
        Response.AddHeader("Content-Length", toDownload.Length.ToString())
        Response.ContentType = "text/plain"
        Response.WriteFile(path)
        Response.End()
    End If


    veras que en el Response.WriteFile()
    se pone el path al archivo fisico


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Friday, February 05, 2010 8:01 PM
  • me aparece el siguiente error
    sys.web.forms.pagerequestmanagerparsererrorexception: then message received from the server could not be parsed. common cuases for this error are when the response is modified by calls to response.write()
    Jaysson Avendaño
    Friday, February 05, 2010 8:21 PM
  • hola

    de casualidad estas usando AJAX

    Sys.WebForms.PageRequestManagerParserErrorException al hacer un postback parcial


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Friday, February 05, 2010 8:34 PM
  • si oe
    el codigo que ud me paso funciona buy bien
    ¿ajax me da doloires de cabeza?

    gracias
    Jaysson Avendaño
    Friday, February 05, 2010 8:44 PM