所以我一直试图让NSIS的Inetc插件从以下地址http://www.hjhappel.de/dlmonitor/download.php?t=d&i=2下载zip文件mp3splitter20.zip,但我没有运气。我之前尝试过Nsisdl插件并让文件开始下载但我一直收到以下错误
下载失败:服务器未指定内容长度
我认为使用Inetc会更好,因为它允许使用HTTP1.1。我尽力理解NSIS inetc wiki page here上的文档,但是我不知道如何通过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
答案 0 :(得分:1)
您不应该在请求中发送这些标头,服务器将在回复中发送这些标头。 (见List of HTTP header fields)
要从“普通”服务器下载文件,只需inetc::get "http://example.com/somefile.xyz" "$instdir\thefile.xyz" /END