需要帮助下载带有PHP的zip for NSIS Inetc插件

时间:2012-09-10 10:51:17

标签: php download zip nsis

所以我一直试图让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

1 个答案:

答案 0 :(得分:1)

您不应该在请求中发送这些标头,服务器将在回复中发送这些标头。 (见List of HTTP header fields

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

即可