線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:6625
推到 Plurk!
推到 Facebook!

如何正確的使用IdFtp.put??

尚未結案
maggie
一般會員


發表:6
回覆:12
積分:3
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-21 17:17:21 IP:139.223.xxx.xxx 未訂閱
請教各位先進..如果在不使用Opendialog.filename的情況下, 也就是我有已知的路徑,【在Ftp Server上的某個資料夾下的某筆檔案】,ex 【139.223.xxx.xxx\data\index.html】..    如上所言..我程式碼寫成 Idftp1.Put('\\139.223.xx.xxx\data\index.html,'index.html'); 可是卻不行..這是為什麼呢?我該如何寫才是正確的?    如果使用Opendialog.filename是可以ㄉ IdFtp1.Put(OpenDialog1.FileName,ExtractFileName(OpenDialog1.FileName));    請問我該怎麼做呢??    謝謝各位先進....
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-21 17:33:59 IP:61.30.xxx.xxx 未訂閱
首先,您已知server上路徑??? put 是上傳的動作,為什麼要知道server 上的路徑??? put 的參數(本地完整path, 遠端檔名)    如果您真的是要上傳的話,您應該要的動作是 (1)找到本地的完整路徑 (2)把在server的路徑,切換到你要上傳的目錄 (3)執行put 並傳入參數. 完成
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-21 19:15:46 IP:61.155.xxx.xxx 未訂閱
procedure Put(const ASourceFile: string; const ADestFile: string = ''; const AAppend: boolean = false);    我想你这种方法应该行的;    这样试试看: Idftp1.Put('\\机器名\data\index.html,'index.html');    小弟浅见,供参考!    风花雪月 e梦情缘
------
风花雪月 e梦情缘
maggie
一般會員


發表:6
回覆:12
積分:3
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-22 10:49:26 IP:139.223.xxx.xxx 未訂閱
首先..先謝謝兩位先進的回答.. 針對turboted大大ㄉ疑問..我在此再說明一下.. 我的確是要做上傳的動作沒錯.. 只是我想在上傳我選擇好檔案的同時..也copy原本在FTP Server上就有的檔案到上傳時的資料夾 所以IdFtp1.Put(OpenDialog1.FileName,ExtractFileName(OpenDialog1.FileName)); 這是可以ㄉ..沒問題    Idftp1.Put('\\ml350\pmp\9509\index.htm','index.htm'); 就不行    procedure Put(const ASourceFile: string; const ADestFile: string = ''; const AAppend: boolean = false);    為什麼Put()裡面的參數改為已知的就不行呢??    另外wnhoo大大的方法..我試ㄌ幾次..還是不行.. ??奇怪??    還請各位多多指教~謝謝    < >< >
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-22 11:00:38 IP:61.30.xxx.xxx 未訂閱
您說Idftp1.Put('\\ml350\pmp\9509\index.htm','index.htm');就不行 這本來就不可能可行 你說,你這行,是要把ftpserver的資料上傳?? 你能不能說明的清楚一點,我完全不懂 現在到底是有幾台的ftp server ? 你要由本地上傳一個檔到ftp server 還有一個是要由ftp server 上傳.. 那就是有兩個ftp server ?
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-24 07:13:54 IP:61.155.xxx.xxx 未訂閱
这样试试看:    Idftp1.Put('file:\\139.223.xx.xxx\data\index.html,'index.html'); OR Idftp1.Put('file:\\机器名\data\index.html,'index.html'); 风花雪月 e梦情缘
------
风花雪月 e梦情缘
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-24 09:22:13 IP:218.16.xxx.xxx 未訂閱
Put is an overloaded procedure that uploads data to a file with the name specified in ADestFile on the FTP server. The uploaded data can be either a stream (ASource) or a name of a file which exists on the user's computer (ASourceFile). 不可能直接這樣抓網站的東西否則甚麼 script file / dll 全都可以抓豈不是天下大亂了? 若來源也是 ftp, 你要先 get 進 memorystream / 本地 file 再 put 到目的地 若來源是 http, 你可先用 idHTTP get 進 Stream 再用 idFTP put 到目的地
maggie
一般會員


發表:6
回覆:12
積分:3
註冊:2002-03-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-28 13:06:17 IP:139.223.xxx.xxx 未訂閱
謝謝各位的不吝指教.. 大概是我題意說的不清吧.. 其實我做的是..上傳一個我自已開啟的檔案(ex:a.htm),到FTP Server上(如果FTP Server上沒有我選擇好的資料夾名稱(ex:File),就會新建一個(ex:FTP Server/File),然後同時將在Ftp Server上原本資料夾內的一個檔案(ex:FTP Server/Source/b.htm),我要順便把它複製到新建的資料夾內(FTP Server/File)...就是這樣ㄌ.. 後來我知道為什麼我用wnhoo先進的方法..卻不成功..的原因所在ㄌ 因為我的路徑沒有寫完整,經過修改後..現在已正常使用..結果如下.. Fn:=ExtractFileName(OpenDialog1.FileName); IdFtp1.Host :='139.xxx.xxx.xxx'; //Ml350 IdFtp1.Port :=21; IdFtp1.User :='anonymous'; IdFtp1.Password :='guest'; try IdFtp1.Connect(True); except begin showmessage('未成功連線到主機!請檢查網路狀態~'); exit; end; end; try IdFtp1.MakeDir(Category_Cmbx.Text); //新建選擇的File資料夾 except end; IdFtp1.ChangeDir(Category_Cmbx.Text); //換到新建的資料夾 Try IdFtp1.Put(OpenDialog1.FileName,Fn); //開ex:a.htm上傳 Idftp1.Put('\\Ml350\Apache Group\Tomcat 4.1\webapps\ROOT\pmp\9509 \b.htm','b.htm'); //複製b.htm到新建資料夾 except begin showmessage('上傳失敗!請檢查~'); exit; end; end; showmessage('上傳成功!'); IdFtp1.Disconnect;
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-05-30 09:56:35 IP:218.16.xxx.xxx 未訂閱
你這個方法好奇怪耶.... 你這方法只能在 ftp server 的區域網路才能執行,若在之外的 internet 是不行的 不過你既然選擇這樣做,只好尊重你的選擇了。
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-05-30 10:11:38 IP:210.241.xxx.xxx 未訂閱
我也這樣覺的 這個作法真的很不乎常理 我更懷疑,這樣的動作看起來非常的不standard
maggie
一般會員


發表:6
回覆:12
積分:3
註冊:2002-03-13

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-05-30 10:46:15 IP:139.223.xxx.xxx 未訂閱
引言: 你這個方法好奇怪耶.... 你這方法只能在 ftp server 的區域網路才能執行,若在之外的 internet 是不行的 不過你既然選擇這樣做,只好尊重你的選擇了。
真抱歉..的確是在區域網路進行沒錯.. 因為是內部要求..不會在外面執行.. 謝謝各位的指教..
系統時間:2024-06-29 15:59:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!