หน้าแรกของฉัน: http://www.tommstudio.com/
ระบบที่ฉันพัฒนาขึ้นเมื่อเร็ว ๆ นี้ต้องการฟังก์ชั่นในการดาวน์โหลดไฟล์ ฉันเคยเขียนการโทร API ที่ยุ่งยากโดยใช้ BCB แต่ทันใดนั้นฉันก็จำได้ว่ามี API ที่สามารถทำได้ดังนั้นฉันจึงมาค้นหาตอนเช้า API นี้เป็น urldownloadtofile ไม่เพียงแค่นั้นการควบคุม Delphi บางอย่างยังสามารถดาวน์โหลดได้อย่างง่ายดายเช่น NMHTTP, ระบุ NMHTTTP1.InputFileMode: = ture; ต่อไปนี้เป็นรหัสโดยละเอียดทั้งหมดจาก CSDN ฉันเรียงลำดับทั้งหมดที่นี่เพื่อให้ทุกคนเข้าถึงได้ง่าย
ใช้ urlmon; ฟังก์ ชั่นดาวน์โหลดไฟล์ (แหล่งที่มา, dest: string ): บูลีน; เริ่ม พยายาม ผลลัพธ์: = urldownloadtofile ( nil , pchar (แหล่งที่มา), pchar (dest), 0, nil ) = 0; ยกเว้น ผลลัพธ์: = เท็จ ; จบ ; จบ ; ถ้า downloadfile ('http://www.borland.com/delphi6.zip,' c:/kylix.zip ') จากนั้น ShowMessage ('ดาวน์โหลดประสบความสำเร็จ') Else ShowMessage ('ดาวน์โหลดไม่ได้รับ') |
-
กิจวัตรประจำวัน:
ใช้ urlmon, shellapi; ฟังก์ชั่นดาวน์โหลดไฟล์ (SourceFile, DestFile: String): Boolean; เริ่ม พยายาม ผลลัพธ์: = urldownloadtofile (nil, pchar (sourcefile), pchar (destfile), 0, nil) = 0; ยกเว้น ผลลัพธ์: = เท็จ; จบ; จบ; ขั้นตอน tform1.button1.click (ผู้ส่ง: tobject); const // ตำแหน่ง URL SourceFile: = ' http://www.google.com/intl/de/images/home_title.gif'; // จะบันทึกไฟล์ได้ที่ไหน DestFile: = 'C: /temp/google-image.gif'; เริ่ม ถ้า ดาวน์โหลดไฟล์ (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 เริ่ม คุกกี้: = ''; LocalMailaddress: = ''; localprogram: = ''; ผู้อ้างอิง: = ''; userId: = 'ชื่อผู้ใช้'; รหัสผ่าน: = 'รหัสผ่านผู้ใช้'; จบ ; nmhttp1.get (' http://www.abcdefg.com/software/a.zip'); |
ลองใช้มีตัวอย่างของการควบคุม TNMHTTP ในไดเรกทอรีของ Delphi NT4+, Win95+, IE3+คุณสามารถใช้ฟังก์ชัน MOIKER URL
ใช้ urlmon; - Olecheck (urldownloadtofile ( nil , 'url', 'ชื่อไฟล์', 0, nil )); |
นอกจากนี้คุณยังสามารถผ่านการใช้งาน Ibindstatuscallback เพื่อติดตามความคืบหน้าการดาวน์โหลดหรือควบคุมการดาวน์โหลดที่ถูกยกเลิก โอกาสง่ายๆสามารถทำได้ในหนึ่งประโยค
BTW, URL moniker ห่อหุ้ม URL ส่วนใหญ่แทนที่จะห่อหุ้มโปรโตคอลเช่น NMHTTP ดังนั้นคุณสามารถใช้ urldownloadTofile เพื่อดาวน์โหลดไฟล์ HTTP, FTP และแม้แต่ไฟล์ท้องถิ่นและ LAN
วาจา ดาวน์โหลดไฟล์: tfilestream; ค่าเริ่มต้น downloadfile: = tfilestream.create ('c: /aa.rar', fmcreate); idhttp1.get ('http://www.sina.com.cn/download/aa.rar', downloadfile); downloadloadfile.free; จบ ; - |
โปรแกรมสิ้นสุดลง