2015-10-07 47 views
0
INetC::get "ftp://user:[email protected]/bbb/ccc.exe" "$INSTDIR/bbb/ccc.exe" /end 

我正在使用上述腳本從ftp位置下載文件。進度條不顯示文件的總大小,它總是顯示0KB的0%。 (646kB(0%)0kB @ 894.8kB/s)任何想法如何顯示正確的文件大小和正確的百分比。INetC ::從ftp位置獲取不顯示下載百分比

順便說一句,如果我從保險箱位置下載它會顯示正確的值。

Update

Wireshark的跟蹤:

SIZE bbb/ccc.exe 
550 SIZE not allowed in ASCII mode 
TYPE I 
200 Type set to I 
PASV 
227 Entering passive mode(192,**,***,**,221,185). 
SIZE bbb/ccc.exe 
213 50225880 
RETR bbb/ccc.exe 
150 Opening BINARY mode data connection for bbb/ccc.exe (50225880) 

回答

1

提供真正的FTP服務器的URL將有所幫助,沒有辦法診斷這一點,而無需訪問服務器。

我知道插件實現了一些破碎服務器的解決方法,但我想它並不總是工作。

該插件使用WinInet庫,並且應該在與Internet Explorer相同的位置顯示進度條。它在我嘗試過的幾臺服務器上工作:

InitPluginsDir 
INetC::get "ftp://ftp.gnu.org/pub/gnu/make/make-4.1.tar.gz" "$PluginsDir\test.bin" 
Pop $1 
DetailPrint $1 
+0

我剛剛對您提供的ftp URL進行了快速測試。它工作得很好。我無法在這裏提供網址,因爲它有一些機密信息。我怎樣才能調試這個。我不熟悉調試插件。 – Vivek

+0

你可以給我樣本測試程序來調試我的問題 – Vivek

+0

@Vivek你應該從分析Wireshark,Fiddler或其他流量捕獲工具的流量開始,看看是否有任何線索爲什麼沒有找到大小信息。你也許可以修改插件來調用FtpGetFileSize,如果它尚未這樣做的話。要實際調試插件,您需要安裝WinDbg和/或Visual Studio,並且您可能還必須追蹤到WinInet本身,所有這些都需要一點點的win32和調試知識...... – Anders

0

這看起來像你的服務器的問題。有什麼特別的嗎?也許這可以在服務器的設置(配置)中設置。

這個插件對我來說工作的很好(即使對你來說也是如此),所以我假設有一些隱藏的捕獲。

你可以運行帶有調試器的安裝程序嗎?您需要調試插件,而不是NSIS,例如。 G。在Visual Studio中。

這將告訴你哪些值插件接收來自服務器的回覆,並可以解決問題。

+0

如何調試?我沒有得到任何調試文件插件。 – Vivek

+0

我需要在FTP服務器上查看什麼設置? – Vivek