全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3624
推到 Plurk!
推到 Facebook!

如何由程式偵測得知 檔案已上傳到 FTP SERVER ?

答題得分者是:小傑克
joana
一般會員


發表:35
回覆:70
積分:21
註冊:2005-09-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-10-28 22:18:24 IP:122.116.xxx.xxx 訂閱

我在 批次檔(.BAT) 裡下FTP 的指令 ftp -i -s:\pos98\autoput.cmd 110.11.11.11
利用 ShellExecute(0, PChar('open'), PChar(FNAME, nil, nil, SW_SHOWNORMAL)
把檔案上傳到 FTP SERVER,
請問各位大德, 如何由程式偵測 檔案已順利上傳到 FTP SERVER ?
因為即使沒有上傳成功, 程式照樣執行, 也不會出現錯誤訊息
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-10-29 08:27:50 IP:59.125.xxx.xxx 訂閱
ftp list

===================引 用 joana 文 章===================

我在 批次檔(.BAT) 裡下FTP 的指令 ftp -i -s:\pos98\autoput.cmd 110.11.11.11
利用 ShellExecute(0, PChar('open'), PChar(FNAME, nil, nil, SW_SHOWNORMAL)
把檔案上傳到 FTP SERVER,
請問各位大德, 如何由程式偵測 檔案已順利上傳到 FTP SERVER ?
因為即使沒有上傳成功, 程式照樣執行, 也不會出現錯誤訊息
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-10-29 09:04:28 IP:203.79.xxx.xxx 訂閱
偷吃步的作法

1.上傳 myDATA.dat
2.再上傳 myDATA.ok



而程式就檢查是否有 *.ok,若有,再根據前面的檔名去下載 *.dat

所以當有 *.ok時,表示該dat是順利傳完,此時再去讀取 dat 應該就是完整的檔案。


以上僅供參考,謝謝



===================引 用 joana 文 章===================

我在 批次檔(.BAT) 裡下FTP 的指令 ftp -i -s:\pos98\autoput.cmd 110.11.11.11
利用 ShellExecute(0, PChar('open'), PChar(FNAME, nil, nil, SW_SHOWNORMAL)
把檔案上傳到 FTP SERVER,
請問各位大德, 如何由程式偵測 檔案已順利上傳到 FTP SERVER ?
因為即使沒有上傳成功, 程式照樣執行, 也不會出現錯誤訊息
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-10-29 18:45:03 IP:59.112.xxx.xxx 訂閱
既然想用程式做, 那不彷試試 indy 元件
http://www.indyproject.org/Sockets/Demos/index.EN.aspx


如果只想靠cmd來完成的話, 可以再加點工
http://www.howtogeek.com/howto/windows/how-to-automate-ftp-uploads-from-the-windows-command-line/
先參考上述方法寫個ftpupload.bat
然後執行時用cmd下 ftpupload.bat Filename >> C:\log.txt
然後程式再開c:\log.txt 去讀裡面傳送有沒有 226 Transfer complete.

當然你可能還需一個waiting 的機制, ShellExecute 完成後 C:\log.txt 不會立即出現



===================引 用
joana 文 章===================

我在 批次檔(.BAT) 裡下FTP 的指令 ftp -i -s:\pos98\autoput.cmd 110.11.11.11
利用 ShellExecute(0, PChar('open'), PChar(FNAME, nil, nil, SW_SHOWNORMAL)
把檔案上傳到 FTP SERVER,
請問各位大德, 如何由程式偵測 檔案已順利上傳到 FTP SERVER ?
因為即使沒有上傳成功, 程式照樣執行, 也不會出現錯誤訊息
------
額有朝天骨,眼中有靈光
編輯記錄
小傑克 重新編輯於 2009-10-29 18:50:32, 註解 無‧
joana
一般會員


發表:35
回覆:70
積分:21
註冊:2005-09-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-11-03 16:59:55 IP:122.116.xxx.xxx 訂閱
謝謝各位大德熱心的回覆,只要下
ftp -i -s:\autoput.cmd 111.11.11.11 >d:\ftpUpload.log
就會自動產生.log檔,
但現在碰到一個嚴重的問題, 檔案傳一半就當掉, 上傳到FTP 之檔案byte 數不對, 一家店應該上傳10個 , 卻只上傳幾個檔案,因同一時間約有70家往 FTP SERVER丟檔案, 有些檔案還不小, 初步判斷可能是有些檔案太大(約900k左右), 我想把檔案壓縮後再上傳, 上傳到FTP後再解壓縮, 不曉得各位大德有無這樣的範例程式 ?
時間很敢, 祈求各位的協助 ...

小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-11-03 19:20:38 IP:59.112.xxx.xxx 訂閱
zip/ unzip 的sample 很多,在ktop 上一搜尋跑一堆出來...可能要依你自己狀況自己挑一個合適的
http://delphi.ktop.com.tw/board.php?cid=168&fid=913&tid=67559
這篇是bcb的, 改一下就可以

===================引 用 joana 文 章===================
謝謝各位大德熱心的回覆,只要下
ftp -i -s:\autoput.cmd 111.11.11.11 >d:\ftpUpload.log
就會自動產生.log檔,
但現在碰到一個嚴重的問題, 檔案傳一半就當掉, 上傳到FTP 之檔案byte 數不對, 一家店應該上傳10個 , 卻只上傳幾個檔案,因同一時間約有70家往 FTP SERVER丟檔案, 有些檔案還不小, 初步判斷可能是有些檔案太大(約900k左右), 我想把檔案壓縮後再上傳, 上傳到FTP後再解壓縮, 不曉得各位大德有無這樣的範例程式 ?
時間很敢, 祈求各位的協助...

------
額有朝天骨,眼中有靈光
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-11-04 19:35:23 IP:59.112.xxx.xxx 訂閱
如果是單純的zip / unzip 
有個還不錯的 ZipForge
寫法單純用起來容易支援delphi4-delphi2010
http://www.componentace.com/download/download.php?editionid=12

同一個頁面中有個Code Samples 你看到那個sample 寫法應該簡單到會讓你笑出來
------
額有朝天骨,眼中有靈光
joana
一般會員


發表:35
回覆:70
積分:21
註冊:2005-09-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-11-07 22:34:02 IP:122.116.xxx.xxx 訂閱
真的感謝小傑克及各位大德的熱心幫忙, 已DownLoad ZipForge, 有空我會Try ,
還是先把這個主題結案, 有其他問題我再另外提問.
感謝 !!!

系統時間:2017-12-14 8:42:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!