DOWNLOAD Archivo BINARIO

Kein
19 de Agosto del 2005
TENGO EL SIGUIENTE PROBLEMA CON LA DESCARGA Y MOSTRAR EL ARCHIVO BINARIO EN UN ASP.... EL PROBLEMA ES QUE CUANDO QUIERE SI ME ABRE CORRECTAMENTE EL ARCHIVO QUE DESCARGO... Y EN OTRA OCASION !!ME MUESTRA EL CDIGO FUENTE DEL ASP QUE REALIZA LA DESCARGA!!! Y EN OTRAS OCASIONES !!ME SACA EL DIALOGO DE DESCARGAR EL ARCHIVO FUENTE!!! JAJAJAJAJAJAJA.

ESPERO QUE ME PUEDAN AYUDAR...
AQU ESTA EL CDIGO QUE UTILIZO PARA DESCARGARLO.... creo que todos han leido acerca de el... el que utiliza la CLASE Loader.asp que circula por internet....
----------------------------
<!--#include file="conexion.asp"-->
<%
Response.Buffer = True

' ESTO ES UN IDENTIFICADOR QUE UTILIZO Dim idPropuesta
idPropuesta = Request("idPropuesta")

If Len(idPropuesta) < 1 Then
idPropuesta = 7
End If

' Realizo la consulta correspondiente
Rs.Open "SELECT Archivo, [Content Type] FROM ArchivoPropuesta WHERE idPropuesta = " & idPropuesta, Conn, 2,4

If Not Rs.EOF Then
Response.ContentType = Rs("Content Type")
Response.BinaryWrite Rs("Archivo")
End If

Rs.Close
Set Rs = Nothing
%>


Kein
19 de Agosto del 2005
COMO VERAN LE AGREGUE ALGUNAS LNEAS, PERO TAMPOCO LOGRO HACER QUE JALE... PORQUE EN EN LA PRIMERA OCASIN ME MUESTRA EL CODIGO DEL ASP, Y EN LA SEGUNDA CORRIDA, YA ME ABRE EL DOCUMENTO DE WORD... PERO POR EJEMPLO SI BORRO MI HISTORIAL... PUES OTRA VEZ ME ABRE EL CODIGO... ALGUNA IDEA DE PORQUE PUEDA ESTAR FALLANDO.???
AH, Y SI PUEDEN PONER UNA RUTINA, PARA ABRIR UN DOCUMENTO DE WORD... DESDE UN ASP... PERO NO DESCARGANDOLO DE LA B.D. SINO UNO QUE ESTA EN EL DISCO DURO. PORQUE INTENTE CREAR UN CDIGO ASP DONDE CREABA UN OBJETO DE TIPO WORD... PERO ME ENVIABA UN ERROR DE QUE EL OBJETO NO SEPODIA CREAR O ALGO ASI...








'Response.ContentType = "application/msword"
'Response.AddHeader "Content-Type", "application/msword"
Response.Buffer = True

' idPropuesta
Dim idPropuesta
idPropuesta = Request("idPropuesta")

If Len(idPropuesta) < 1 Then
idPropuesta = 1
End If

' Realizo la consulta correspondiente
'SQL = "SELECT * FROM ArchivoPropuesta WHERE idPropuesta = " & idPropuesta
'Set Rs = Conn.execute(SQL)
'SqlSelect = "SELECT Archivo, [Content Type] FROM ArchivoPropuesta WHERE idPropuesta = " & idPropuesta & " , Conn, 2,4"
'response.Write(SqlSelect)
'response.End()
Rs.Open "SELECT Archivo, [Content Type] FROM ArchivoPropuesta WHERE idPropuesta = " & idPropuesta, Conn, 2,4

If Not Rs.EOF Then
Response.ContentType = Rs("Content Type")
Response.BinaryWrite Rs("Archivo")
End If

Rs.Close
Set Rs = Nothing

Kein
19 de Agosto del 2005
YA INTENTE SUBIR ARCHIVOS .JPG O .GIF... Y SUBEN.... A LA B.D. MUY BIEN... Y LUEGO LOS BAJO... CON EL ARCHIVO QUE LES PUSE... Y SE MUESTRAN EXCELENTE NO FALLAN NINGUNA VEZ... PERO YO QUIERO HACER LO MISMO CON DOCUMENTOS DE WORD... Y NO P UEDO... PORQUE EN OCASIONES ME MUESTRA MI CODIGO DEL ASP QUE EJECUTA EL DOWNLOAD... Y EN OCASIONES ME MUESTRA EL DOUMENTO DE WORD... ES UNO Y UNO...

en sql server... tengo el campo como IMAGE de 16length...

y se llama "ARCHIVO"


sugerencias please

blakord
19 de Agosto del 2005
Bueno un download binario es forzar a Save Ass cualquier extension incluso aquellas ejecutables desde el browser como imagenes, videos, mp3 etc.

Lo que tu intentas no se si pueda ser viable, por que ya estableces una relacion de compatibilidad entre el browser y MS Word, dudo mucho que alguien que no tenga MS Word instalado pueda leer tus documentos desde el browser y la mayoria de nosotros usa antivirus que bloquearia tus documentos en especial si contienen macros MS Word.

Tampoco creo que por su formatos compilados se pueda leer un documento MS Word como objeto para descrifrar linea por linea y si pudiera los formatos volverian una secuencia de caracteres locos tu documento

Quizas me equivico pero no creo que sea posible en ASP, pero aun cuando mi contacto es poco si se que se puede hacer con ASP.NET pero no se como, de seguro encontraras una funcion lista para esto, si es asi como lo quieres quizas debas considerar cambiar tu plataforma de ASP a .NET

blakord
19 de Agosto del 2005
Asi forzara siempre a bimary abriendo la ventana SAVE AS sea cual sea la extension del archivo

strFileName = Rs("Archivo")
strFilePath = Server.MapPath(strFileName)
strFileName = CheckFileName(strFileName)

Dim strFileSize, f, fso, objStream, ContentType
set fso=createobject("scripting.filesystemobject")
set f=fso.getfile(strFilePath)
strFileSize = f.size
set f=nothing: set fso=nothing
Const adTypeBinary = 1

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath
ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName
Response.AddHeader "Content-Length", strFileSize
Response.Charset = "UTF-8"
Response.ContentType = ContentType

Response.BinaryWrite objStream.Read

objStream.Close
Set objStream = Nothing

-----------------------------------------
Blakord Instant ASP Portal www.cdv3k.com

Kein
19 de Agosto del 2005
NO NO NO NO ME ENTENDIERON, DISCULPEN.. LO QUE QUIERO ES QUE SIEMPRE SIEMPRE ABRA LOS DOCUMENTOS.... SOLO SE INSERTARAN DOCUMENTOS DE WORD... Y LO QUE QUIERO ES QUE SIEMPRE SE ABRAN DOCUMENTOS... NO QUE EN OCASIONES SE ABRAN CUANDO HAGA EL SELECT Y EN OCASIONES ME MUESTRE EL CDIGO DE MI ASP... :(