Моя домашняя страница: http://www.tommstudio.com/
Система, которую я недавно разработал, требует функции для загрузки файлов. Раньше я писал громоздкий вызов API с использованием BCB, но вдруг я вспомнил, что был API, который можно было сделать, поэтому я пришел на поиски рано утром. Этот API урдуанд загрузки. Мало того, что некоторые элементы управления Delphi также могут быть легко загружены, например, NMHTTP, укажите nmhttp1.inputfilemode: = ture; Ниже приведены подробные коды, все из CSDN. Я разобрался с ними здесь, чтобы получить легкий доступ ко всем.
использует Urlmon; Функция Downloadfile (Source, Dest: String ): Boolean; Начинать пытаться Результат: = urldownloadtofile ( nil , pchar (source), pchar (dest), 0, nil ) = 0; кроме Результат: = false ; конец ; конец ; Если Downloadfile ('http://www.borland.com/delphi6.zip,' c: /kylix.zip ') тогда ShowMessage ('скачать успешно') else showmessage ('скачать Unsuccesful') |
===============================
Рутина:
Использует Urlmon, Shellapi; Function Downloadfile (SourceFile, DestFile: String): Boolean; Начинать пытаться Результат: = urldownloadtofile (nil, pchar (sourcefile), pchar (destfile), 0, nil) = 0; кроме Результат: = false; конец; конец; Процедура tform1.button1.click (отправитель: tobject); констант // местоположение URL SourceFile: = ' http://www.google.com/intl/de/images/home_title.gif'; // где сохранить файл Destfile: = 'c: /temp/google-image.gif'; Начинать Если Downloadfile (SourceFile, Destfile), тогда Начинать ShowMessage ('скачать успешно!'); // Показать скачанное изображение в вашем браузере Shellexecute (Application.handle, pchar ('open'), pchar (destfile), pchar (''), nil , sw_normal) конец еще ShowMessage ('ошибка при загрузке' + sourcefile) конец ; |
======================
Добавьте следующий код:
Nmhttp1.inputfilemode: = истина; Nmhttp1.body: = 'локальное имя файла'; Nmhttp1.header: = 'head.txt'; Nmhttp1.outputfileMode: = false ; Nmhttp1.reportlevel: = status_basic; Nmhttp1.proxy: = 'IP -адрес прокси -сервера'; Nmhttp1.proxyport: = 'Номер порта прокси -сервера'; С nmhttp1.headerinfo do Начинать Cookie: = ''; LocalMailAddress: = ''; LocalProgram: = ''; Реферат: = ''; UserId: = 'имя пользователя'; Пароль: = 'пароль пользователя'; Конец ; Nmhttp1.get (' http://www.abcdefg.com/software/a.zip'); |
Попробуйте, есть примеры элементов управления TNMHTTP в каталоге Delphi. NT4+, Win95+, IE3+, вы можете использовать функцию MRL -адреса URL.
использует Urlmon; ... Olecheck (urldownloadtofile ( nil , 'url', 'filename', 0, nil )); |
Вы также можете пройти в реализации ibindstatuscallback, чтобы отслеживать прогресс загрузки или управление абортированной загрузкой. Простой случай может быть сделан в одном предложении.
Кстати, прозвище URL инкапсулирует большинство URL -адресов, вместо того, чтобы инкапсулировать протоколы, такие как NMHTTP, поэтому вы можете использовать UrldownLoafile для загрузки HTTP, FTP и даже локальных и локальных файлов, а также другие пользовательские пропуски, такие как MSITSTORE (реализация MONIKER BILIBRY MSDN).
вар Downloadfile: tfileStream; начало Downloadfile: = tfileStream.create ('c: /aa.rar', fmcreate); Idhttp1.get ('http://www.sina.com.cn/download/aa.rar', downloadfile); Downloadloadfile.free; конец ; // ------------------------------------------------ ------------------------------------------------------ --------------------------- |
Программа заканчивается