jueves, 10 de noviembre de 2016

ASP Clásico: Descarga y eliminación de fichero y Redirección de url



En ASP Clásico para descargar un fichero, por ejemplo PDF, y luego eliminarlo, encontré este código en Internet:

  • downloadFile es una función que permite descargar el fichero, pasándole como parámetros la ruta del fichero  y el nombre del fichero. Ejemplo: strPathAndFile= "C:\ficheros /nombreFichero.pdf" y strFileName= "nombreFichero.pdf"  

function downloadFile(strPathAndFile, strFileName)
  Dim objFso
  Dim objStream
  If strPathAndFile <> "" Then
    Set objFso = Server.CreateObject("Scripting.FileSystemObject")
    If objFso.FileExists(strPathAndFile) Then
     Response.AddHeader "Content-disposition", "filename=" & strFileName
      Response.ContentType = "application/octet-stream"
      Response.AddHeader "Pragma", "no-cache"
      Response.AddHeader "Expires", "0"
      Set objStream = Server.CreateObject("ADODB.Stream")
      objStream.Type = 1
      objStream.Open
      objStream.LoadFromFile strPathAndFile
      Response.BinaryWrite(objStream.Read())
      objStream.Close
      Set objStream = Nothing
    Else
      Response.Write "La ruta del fichero no existe."
    End If
    Set objFso = Nothing
  End If
End Function

  • Y para eliminar el fichero, esta función deleteFileFromServer donde fileRoute= "C:\ficheros /nombreFichero.pdf" (por ejemplo).

function deleteFileFromServer (fileRoute)
    Dim objFSO : Set objFSO = Createobject("Scripting.FileSystemObject")
    If objFSO.Fileexists(fileRoute) Then
       objFSO.DeleteFile fileRoute
       Set objFSO = Nothing
    else      
        response.write "No existe el fichero en la ruta especificada."
    end if
end function    

Ahora bien, en mi fichero asp llamé a las funciones de 

call downloadFile(rutaArchivo, nombreArchivo)
call deleteFileFromServer(rutaArchivo)

Y luego ponía una tercera línea response.end()y funcionaba perfectamente, sin embargo, al quitar el response.end()y redireccionar a la página:
response.redirect("miPagina.asp?accion=ok”) la descarga y eliminación dejaban de funcionar.

Si te ha pasado esto alguna vez, te cuento cómo lo solucioné:

Me cree un nuevo fichero .asp que contenía la descarga y eliminación del fichero y desde Jquery llamé a ese fichero utilizando
                                              
window.open(‘descargaEliminaFichero.asp’);

Y a continuación puse la redirección a mi página:

window.location.href = ‘miPagina.asp?accion=ok’;
               
Y listo, ya tenemos la descarga del fichero (en mi caso PDF), eliminación y  redirección.                              

No hay comentarios:

Publicar un comentario