0

所以我一直在尝试让 NSIS 的 Inetc 插件从以下地址http://www.hjhappel.de/dlmonitor/download.php?t=d&i=2下载 zip 文件 mp3splitter20.zip但我是没有运气。我之前尝试了 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
4

1 回答 1

1

您不应该在请求中发送这些标头,服务器将在回复中发送这些标头。(请参阅HTTP 标头字段列表

要从“普通”服务器下载文件,您只需要inetc::get "http://example.com/somefile.xyz" "$instdir\thefile.xyz" /END

于 2012-09-10T11:14:18.913 回答