使用IdFTP 下載檔案遇到之問題 |
尚未結案
|
jamlee
一般會員 發表:10 回覆:5 積分:3 註冊:2004-10-04 發送簡訊給我 |
下載的檔案是13K時沒有問題,可是下載93K的檔案時出現以下的錯誤訊息
為什麼會這樣呢? 程式碼如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TFileStream *strm,*strm2; IdFTP2->Host="127.0.0.1";
IdFTP2->Username="anonymous";
IdFTP2->Password="anonymous";
IdFTP2->Port=2857;
IdFTP2->Connect(true,3000);
IdFTP2->ChangeDir("/upload");
strm = new TFileStream("C:\\SPFDISK.EXE", fmCreate);
IdFTP2->Get("SPFDISK.EXE",strm,false);
delete strm;
IdFTP2->Noop();
IdFTP2->Disconnect();
}
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 下載的檔案是13K時沒有問題,可是下載93K的檔案時出現以下的錯誤訊息 為什麼會這樣呢? 程式碼如下: void __fastcall TForm1::Button1Click(TObject *Sender) { TFileStream *strm,*strm2; IdFTP2->Host="127.0.0.1"; IdFTP2->Username="anonymous"; IdFTP2->Password="anonymous"; IdFTP2->Port=2857; IdFTP2->Connect(true,3000); IdFTP2->ChangeDir("/upload"); strm = new TFileStream("C:\\SPFDISK.EXE", fmCreate); IdFTP2->Get("SPFDISK.EXE",strm,false); delete strm; IdFTP2->Noop(); IdFTP2->Disconnect(); } jamlee 你好: (1)FTP Protocol 在上傳檔案的時候,可以事先知道要傳送的封包大小,因此, 你可以從 OnWorkBegin event procedure 裡面,取得 AWorkCountMax 的大 小 (不為 0) (2)FTP Protocol 在下載檔案的時候,無法事先知道要下載的封包大小,因此, 你在 OnWorkBegin event procedure 裡面,取得 AWorkCountMax 的大小會 是 0,才會出現你所說的那個錯誤 (3)所以,在下載檔案的時候,程式碼要稍微改變一下,才能夠得到正確的結果 ,例如: int gi3=0; void __fastcall TForm1::Button1Click(TObject *Sender) { IdFTP3->Host=FTP_SERVER; IdFTP3->Username=FTP_USERNAME; IdFTP3->Password=FTP_PASSWORD; IdFTP3->Connect(true, 3000); IdFTP3->ChangeDir("/upload"); gi3=IdFTP3->Size("24bit.bmp"); IdFTP3->Get("24bit.bmp", "24bit.bmp", true); IdFTP3->Disconnect(); } void __fastcall TForm1::IdFTP3Work(TObject *Sender, TWorkMode AWorkMode, const int AWorkCount) { Application->ProcessMessages(); CGauge3->Progress=(int)((double)AWorkCount*(double)100/(double)gi3); } void __fastcall TForm1::IdFTP3WorkEnd(TObject *Sender, TWorkMode AWorkMode) { CGauge3->Progress=100; } (4)以上的範例,下載了一個 5 MB 的圖檔,正確無誤-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |