来自 ftp 位置的 INetC::get 不显示下载百分比

INetC::get from ftp location does not show download percentage

INetC::get "ftp://user:password@ftp.aaa.com/bbb/ccc.exe" "$INSTDIR/bbb/ccc.exe" /end

我正在使用上述脚本从 ftp 位置下载文件。进度条不显示文件的总大小,它始终显示 0KB 的 0%。 (646kB(0% of 0kB @ 894.8kB/s)关于如何显示正确文件大小和正确百分比的任何想法。

顺便说一句,如果我从保管箱位置下载,它将显示正确的值。

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)

您的服务器似乎有问题。有什么特别的吗?也许这可以在服务器的设置(配置)中设置。

这个插件对我来说工作正常(甚至对你来说也是如此)所以我假设有一些隐藏的问题。

你能运行附有调试器的安装程序吗?您需要调试插件,而不是 NSIS,e。 G。在 Visual Studio.

这将向您显示插件从服务器收到哪些值作为回复并可以解决问题。

提供真实 FTP 服务器的 URL 会有所帮助,如果不访问服务器就无法诊断。

我知道该插件为损坏的服务器实施了一些解决方法,但我想它并不总是有效。

该插件使用 WinInet 库,应该在与 Internet Explorer 相同的位置显示进度条。它在我尝试过的几台服务器上对我有用:

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