Beranda saya: http://www.tommstudio.com/
Sistem yang saya kembangkan baru -baru ini memerlukan fungsi untuk mengunduh file. Saya biasa menulis panggilan API yang rumit menggunakan BCB, tetapi tiba -tiba saya ingat bahwa ada API yang bisa dilakukan, jadi saya datang untuk mencari pagi -pagi. API ini adalah urldownloadtofile. Tidak hanya itu, beberapa kontrol Delphi juga dapat dengan mudah diunduh, seperti NMHTTP, tentukan NMHTTP1.InputFileMode: = Ture; Berikut ini adalah kode terperinci, semuanya dari CSDN. Saya telah mengurutkan semuanya di sini untuk akses mudah ke semua orang.
menggunakan urlmon; Function Downloadfile (Source, Dest: String ): Boolean; Mulai mencoba Hasil: = urldownloadtofile ( nil , pchar (sumber), pchar (dest), 0, nil ) = 0; kecuali Hasil: = false ; akhir ; akhir ; Jika downloadfile ('http://www.borland.com/delphi6.zip,' c: /kylix.zip ') lalu Showmessage ('Unduh Sukses') lain showmessage ('unduh tidak berhasil') |
==================================
Rutin:
Menggunakan urlmon, shellapi; Function Downloadfile (SourceFile, Destfile: String): Boolean; Mulai mencoba Hasil: = urldownloadtofile (nil, pchar (sourceFile), pchar (destfile), 0, nil) = 0; kecuali Hasil: = false; akhir; akhir; Prosedur TFORM1.BUTTON1.CLICK (Pengirim: Tobject); const // Lokasi URL SourceFile: = ' http://www.google.com/intl/de/images/home_title.gif'; // di mana menyimpan file Destfile: = 'c: /temp/google-image.gif'; Mulai Jika Downloadfile (SourceFile, Destfile) lalu Mulai Showmessage ('unduh sukses!'); // Tampilkan gambar yang diunduh di browser Anda Shellexecute (application.handle, pchar ('terbuka'), pchar (destfile), pchar (''), nil , sw_normal) akhir kalau tidak Showmessage ('kesalahan saat mengunduh' + sourceFile) akhir ; |
========================
Tambahkan kode berikut:
Nmhttp1.inputFileMode: = kebenaran; Nmhttp1.body: = 'nama file lokal'; Nmhttp1.header: = 'head.txt'; Nmhttp1.outputFileMode: = false ; Nmhttp1.reportlevel: = status_basic; Nmhttp1.proxy: = 'alamat ip server proxy'; Nmhttp1.proxyport: = 'Jumlah port dari server proxy'; Dengan nmhttp1.headerinfo do Mulai Cookie: = ''; Localmailaddress: = ''; Localprogram: = ''; Referensi: = ''; Userid: = 'nama pengguna'; Kata sandi: = 'kata sandi pengguna'; Akhir ; Nmhttp1.get (' http://www.abcdefg.com/software/a.zip'); |
Cobalah, ada contoh kontrol TNMHTTP di direktori Delphi. NT4+, Win95+, IE3+, Anda dapat menggunakan fungsi Moniker URL.
menggunakan urlmon; ... Olecheck (urldownloadtofile ( nil , 'url', 'filename', 0, nil )); |
Anda juga dapat melewati implementasi IbindstatusCallback untuk melacak kemajuan unduhan atau mengontrol unduhan yang dibatalkan. Suatu kesempatan sederhana dapat dilakukan dalam satu kalimat.
BTW, URL Moniker merangkum sebagian besar URL, alih -alih merangkum protokol seperti NMHTTP, sehingga Anda dapat menggunakan URLDOWNLOADTOFILE untuk mengunduh HTTP, FTP dan bahkan file lokal dan LAN, serta moniker kustom lainnya, seperti MSITStore (implementasi moniker moniker MSDN).
var Downloadfile: tfilestream; beginio Downloadfile: = tfilestream.create ('c: /aa.rar',fmcreate); Idhttp1.get ('http://www.sina.com.cn/download/aa.rar',downloadfile); Downloadloadfile.free; akhir ; // ------------------------------------------------- -------------------------------------------------- --------------------------- |
Program berakhir