Descargar un archivo desde la Web con VFP 9.0

503 views
Skip to first unread message

Jonathan Serrano R.

unread,
Dec 19, 2024, 8:41:57 PM12/19/24
to Comunidad de Visual Foxpro en Español
Hola compañeros he estado intentando poder descargar mi archivo.exe de mi proyecto, el cual lo subí a la nube Dropbox con un link de descarga directa, copio el link en cualquier navegador y efectivamente se descarga mi .exe de manera automática.

Lo que quiero es a través de VFP poder descargar ese archivo a mi computadora para luego reemplazarlo.

Actualmente estoy aplicando el siguiente código : pero me da el error que descarga el archivo incompleto dejando el ultimo valor en 0 del URL y si le cambio el ultimo valor a 1 del URL me da error 400.

Screenshot_1.jpg

LOCAL lcFileID, lcDownloadUrl, lcOutputFile, loHttp

* Construcción del enlace de descarga directa
lcDownloadUrl = "https://www.dropbox.com/scl/fi/okzkr7piu6dvxuwgru1oz/comercial.exe?rlkey=qnz4ffr58pqiglc9gju4wn785&st=fhmbtyqa&dl=1"

* Nombre del archivo de salida
lcOutputFile = "C:\Sistemas\TPVComercial\Descargas\comercial.exe"  

* Crear objeto WinHttp para la descarga
loHttp = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")

TRY
    * Configurar y realizar la solicitud HTTP
    loHttp.Open("GET", lcDownloadUrl, .F.)
    loHttp.Send()

    * Verificar si la solicitud fue exitosa
    IF loHttp.Status = 200
        * Guardar el archivo en el disco
        STRTOFILE(loHttp.ResponseBody, lcOutputFile)

        * Verificar si el archivo se descargó correctamente
        IF FILE(lcOutputFile)
            MESSAGEBOX("Archivo descargado correctamente: " + lcOutputFile, 64, "Éxito")
        ELSE
            MESSAGEBOX("No se pudo guardar el archivo.", 16, "Error")
        ENDIF
    ELSE
        MESSAGEBOX("Error al descargar el archivo. Código de estado: " + TRANSFORM(loHttp.Status), 16, "Error")
    ENDIF
CATCH TO loError
    MESSAGEBOX("Error: " + loError.Message, 16, "Excepción")
ENDTRY

***************************************************
Mi pregunta es que me recomiendan para poder descargar un archivo o varios en la web a mi pc desde VFP 9.0? 

saludos desde CR.

Zarlu

unread,
Dec 20, 2024, 10:36:04 AM12/20/24
to Comunidad de Visual Foxpro en Español
Buenos días tanwt308 !

Te comparto un código que uso:
FUNCTION unload_file(pLink,pFile)&&url,archivodesalida
*-api para descarga
DECLARE INTEGER URLDownloadToFile IN urlmon.dll;
INTEGER pCaller, STRING szURL, STRING szFileName,;
INTEGER dwReserved, INTEGER lpfnCB
LOCAL lcRemoteFile, lcLocalFile, lcResult
lcRemoteFile = pLink
lcLocalFile = pFile
lcResult = URLDownloadToFile(0,lcRemoteFile,lcLocalFile,0,0)
RETURN lcResult
ENDFUNC

Suerte
zarlu
Chetumal, Quintana Roo, México

Jonathan Serrano R.

unread,
Dec 20, 2024, 11:39:19 AM12/20/24
to Comunidad de Visual Foxpro en Español
Hola Zarlu muchas gracias por tu pronta respuesta.

aplico tu código y si me descarga el archivo pero con un tamaño de 3k y el archivo pesa 31 MB, lo extraño es que descargo un .txt y si lo descarga bien.
No se si sea un tema de seguridad del Google Drive,Dropbox,etc, o sea alguna limitante de windows.

Sabes que podría ser o si me recomiendas alguna otra herramienta donde pueda subir el archivo y lo pueda descargar sin problemas.

Saludos 

Gerardo Cagnola

unread,
Dec 20, 2024, 11:42:16 AM12/20/24
to publice...@googlegroups.com
te fijaste que dice el txt? hay una respuesta del servidor...

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/f1e047e2-c001-448b-bce4-cc0fab137fd0n%40googlegroups.com.

Jonathan Serrano R.

unread,
Dec 20, 2024, 11:46:53 AM12/20/24
to Comunidad de Visual Foxpro en Español
Saben de algún servicio donde pueda subir archivos y poder generar link de descarga directa sin restricciones ?

creo que es u tema de seguridad de Google Drive ya que los archivos que deseo bajar son .exe y los bloquea en el txt me devolvió esto:

<!DOCTYPE html><html><head><title>Google Drive - Virus scan warning</title><meta http-equiv="content-type" content="text/html; charset=utf-8"/><style nonce="GchkuZebanUcjA-AfZDy1w">.goog-link-button{position:relative;color:#15c;text-decoration:underline;cursor:pointer}.goog-link-button-disabled{color:#ccc;text-decoration:none;cursor:default}body{color:#222;font:normal 13px/1.4 arial,sans-serif;margin:0}.grecaptcha-badge{visibility:hidden}.uc-main{padding-top:50px;text-align:center}#uc-dl-icon{display:inline-block;margin-top:16px;padding-right:1em;vertical-align:top}#uc-text{display:inline-block;max-width:68ex;text-align:left}.uc-error-caption,.uc-warning-caption{color:#222;font-size:16px}#uc-download-link{text-decoration:none}.uc-name-size a{color:#15c;text-decoration:none}.uc-name-size a:visited{color:#61c;text-decoration:none}.uc-name-size a:active{color:#d14836;text-decoration:none}.uc-footer{color:#777;font-size:11px;padding-bottom:5ex;padding-top:5ex;text-align:center}.uc-footer a{color:#15c}.uc-footer a:visited{color:#61c}.uc-footer a:active{color:#d14836}.uc-footer-divider{color:#ccc;width:100%}.goog-inline-block{position:relative;display:-moz-inline-box;display:inline-block}* html .goog-inline-block{display:inline}*:first-child+html .goog-inline-block{display:inline}sentinel{}</style><link rel="icon" href="//ssl.gstatic.com/docs/doclist/images/drive_2022q3_32dp.png"/></head><body><div class="uc-main"><div id="uc-dl-icon" class="image-container"><div class="drive-sprite-aux-download-file"></div></div><div id="uc-text"><p class="uc-warning-caption">Google Drive can't scan this file for viruses.</p><p class="uc-warning-subcaption">This file is executable and may harm your computer. <p class="uc-warning-subcaption"><span class="uc-name-size"><a href="/open?id=1Xl9FsnNPvaM8XYw2HqblV6I7GgYAngFC">novapos.exe</a> (30M)</span></p></p><form id="download-form" action="https://drive.google.com/uc?export=download&amp;id=1Xl9FsnNPvaM8XYw2HqblV6I7GgYAngFC&amp;confirm=t&amp;uuid=35204cec-1f6a-47c1-a3ed-c06bbe930cea" method="post"><input type="submit" id="uc-download-link" class="goog-inline-block jfk-button jfk-button-action" value="Download anyway"/></form></div></div><div class="uc-footer"><hr class="uc-footer-divider"></div></body></html>

Zarlu

unread,
Dec 20, 2024, 12:58:50 PM12/20/24
to Comunidad de Visual Foxpro en Español
Qué tal tanwt308 !

Sugerencias...
Prueba con un archivo que no sea .EXE
Contratar un dominio propio

Suerte
zarlu
Chetumal, Quintana Roo, México


nkris...@gmail.com

unread,
Dec 20, 2024, 3:02:52 PM12/20/24
to Comunidad de Visual Foxpro en Español
Lo mejor sería contratar un Hosting y crear las credenciales para FTP.
Y en ese FTP guardas el archivo exe y lo descargas desde el VFP.
Existen varias formas pero una sería utilizando vfpconnection.fll.

saludos.

Jonathan Serrano R.

unread,
Dec 20, 2024, 3:04:29 PM12/20/24
to Comunidad de Visual Foxpro en Español
Hola nkris gracias y como funciona  vfpconnection.fll.?

Zarlu

unread,
Dec 20, 2024, 3:15:02 PM12/20/24
to Comunidad de Visual Foxpro en Español

Zarlu

unread,
Dec 20, 2024, 4:30:43 PM12/20/24
to Comunidad de Visual Foxpro en Español
Qué tal tanwt308"

A ver prueba con estas dos sugerencias:

Local loRequest, lcUrl, lcFilename
lcUrl = "https://........."
lcFilename = "elfile.exe"
loRequest = Createobject('MsXml2.XmlHttp')
loRequest.Open("GET",lcUrl,.F.)
loRequest.Send()
StrToFile(loRequest.ResponseBody,lcFilename)


LOCAL loXMLHTTP AS "Microsoft.XMLHTTP"
loXMLHTTP = CreateObject("Microsoft.XMLHTTP")
cUrl="https://........"
cFile="elfile.exe"
loXMLHTTP.OPEN("GET", cUrl , .F.)
loXMLHTTP.SEND()
STRTOFILE(loXMLHTTP.ResponseBody,cFile)

Suerte
zarlu
Chetumal, Quintana Roo, México

JAZMIN REYES CARDENAS

unread,
Dec 26, 2024, 3:32:17 PM12/26/24
to Comunidad de Visual Foxpro en Español
Gracias por la atencion:

y como haria para descargar toda una carpeta, por ejemplo:

                http://www.montealto-cixma.com/pdf

gracias

Francisco A. Martínez R.

unread,
Dec 27, 2024, 11:19:46 AM12/27/24
to Comunidad de Visual Foxpro en Español
Hola Zarlu; ¿Pordrías ponerte en contacto conmigo? sis...@gmail.com

Zarlu

unread,
Dec 27, 2024, 5:26:09 PM12/27/24
to Comunidad de Visual Foxpro en Español
Buenas tardes siscla!

Con gusto.
Te mando un correo

zarlu
Chetumal, Quintana Roo, México

Reply all
Reply to author
Forward
0 new messages