所以我一直在尝试让NSIS的Inetc插件从以下地址下载zip文件mp3splitter20.ziphttp://www.hjhappel.de/dlmonitor/download.php?t=d&i=2,但我运气不好。我早些时候尝试了Nsisdl插件,并获得了开始下载的文件,但我一直收到以下错误
下载失败:服务器未指定内容长度
我读到使用Inetc会是一个更好的主意,因为它允许使用HTTP1.1。我尽力理解NSIS-inetc wiki页面上的文档,但我不知道如何通过HEADER合并所需的PHP命令来下载我的zip文件。现在,当我尝试使用标头时,我会得到以下错误:
下载失败:连接错误
这让我相信我犯了一个非常简单的错误。
如果能提供一些示例或适当的NSIS PHP文档,我们将不胜感激。提前感谢并为干杯
这是我正在尝试使用的代码部分。
!define file_name "mp3splitter20.zip"
!define file_size "294KB"
Section "F7immersion"
SetOutPath $INSTDIR
;these files must be in the main folder
inetc::get /HEADER 'Content-type: application/zip' 'Content-Disposition: attachment; filename="'${file_name}.'"' "Content-length: ${file_size}" "http://www.hjhappel.de/dlmonitor/download.php?t=d&i=2" "$INSTDIR'mp3splitter20.zip" /END
Pop $R0 ;Get the return value
StrCmp $R0 "success" +3
MessageBox MB_OK "Download failed: $R0"
Quit
nsisunz::Unzip "$INSTDIR'mp3splitter20.zip" "$INSTDIR"
Pop $R0
StrCmp $R0 "success" +2
DetailPrint "$R0" ;print error message to log
File /r *.ahk
File /r *.txt
File /r *.nsi
File /r *.exe
File /r *.ico
File /r *.ini
SectionEnd
您不应该在请求中发送这些标头,服务器将在回复中发送这些。(请参阅HTTP标头字段列表)
要从"普通"服务器下载文件,只需要inetc::get "http://example.com/somefile.xyz" "$instdir'thefile.xyz" /END