Mi página de inicio: http://www.tommstudio.com/
El sistema que desarrollé recientemente requiere una función para descargar archivos. Solía escribir una engorrosa llamada API usando BCB, pero de repente recordé que había una API que se podía hacer, así que vine a buscar temprano en la mañana. Esta API es Urldownloadtofile. No solo eso, algunos controles de Delphi también se pueden descargar fácilmente, como NMHTTP, especificar nmhttp1.InputFilemode: = ture; Los siguientes son códigos detallados, todos de CSDN. Los he ordenado a todos aquí para facilitar el acceso a todos.
usa urlmon; function downloadFile (fuente, des: cadena ): boolean; Comenzar intentar Resultado: = urdownloadtofile ( nil , pchar (fuente), pchar (des), 0, nil ) = 0; excepto Resultado: = falso ; fin ; fin ; if descargarfile ('http://www.borland.com/delphi6.zip,' c: /kylix.zip ') entonces ShowMessage ('descargar exitoso') else ShowMessage ('Descargar sin éxito') |
==================================
Rutina:
Usa urlmon, shellapi; function downloadFile (SourceFile, DestFile: String): Boolean; Comenzar intentar Resultado: = urdownloadToFile (nil, pchar (fuente de fuente), pchar (destfile), 0, nil) = 0; excepto Resultado: = falso; fin; fin; Procedimiento tform1.button1.click (remitente: tobject); estúpido // ubicación de url SourceFile: = ' http://www.google.com/intl/de/images/home_title.gif'; // dónde guardar el archivo Destfile: = 'c: /temp/google-image.gif'; Comenzar if descargarfile (fuenteFile, DestFile) entonces Comenzar ShowMessage ('¡Descarga exitoso!'); // Mostrar imagen descargada en su navegador ShellexCute (Application.Handle, Pchar ('Open'), Pchar (Destfile), PChar (''), NIL , SW_Normal) fin demás ShowMessage ('Error al descargar' + SourceFile) fin ; |
========================
Agregue el siguiente código:
Nmhttp1.inputFilemode: = verdad; Nmhttp1.body: = 'nombre de archivo local'; Nmhttp1.header: = 'head.txt'; Nmhttp1.outputFilemode: = false ; Nmhttp1.ReportLevel: = status_basic; Nmhttp1.proxy: = 'dirección IP del servidor proxy'; Nmhttp1.proxyport: = 'número de puerto de servidor proxy'; Con nmhttp1.headerinfo do Comenzar Cookie: = ''; Localmailaddress: = ''; LocalProgram: = ''; Referente: = ''; UserId: = 'Nombre de usuario'; Contraseña: = 'contraseña de usuario'; Fin ; Nmhttp1.get (' http://www.abcdefg.com/software/a.zip'); |
Pruébelo, hay ejemplos de controles TNMHTTP en el directorio de Delphi. NT4+, Win95+, IE3+, puedes usar la función de apodo de URL.
usa urlmon; ... Olecheck (urdownloadtofile ( nil , 'url', 'nombre de archivo', 0, nil )); |
También puede aprobar una implementación de IbindStatUscallback para rastrear el progreso de descarga o controlar la descarga abortada. Se puede hacer una ocasión simple en una oración.
Por cierto, el apodador de la URL encapsula la mayoría de las URL, en lugar de encapsular protocolos como NMHTTP, por lo que puede usar UrlDownloadtofile para descargar HTTP, FTP e incluso archivos locales y LAN, así como otros monitistas personalizados, como MSITStore (implementación de documentos de biblioteca MSDN).
varilla Downloadfile: tfilErtream; beginio Downloadfile: = tfilErteam.create ('c: /aa.rar', fmcreate); Idhttp1.get ('http://www.sina.com.cn/download/aa.rar',downloadfile); DescargarloadFile.Free; fin ; // ------------------------------------------------ -------------------------------------------------- --------------------------- |
El programa termina