var
  MyStream:TMemoryStream;
begin
  try
    MyStream := TMemoryStream.Create;
    IdHTTP1.Get( 'http://localhost/test/test.exe',MyStream );
    MyStream.SaveToFile(ExtractFilePath (Application.ExeName) + 'test.exe');
  finally
    MyStream.Free;  end;end;

解决方案 »

  1.   

    你的IdHTTP1控件的IdHTTP1.Request.Accept := 'text/html,exe, */*';
      

  2.   

    楼主,那是因为你的站点设置的问题。把站点的执行许可改为“无”。当设置为“脚本和可执行程序”时,HTTP协议会把exe文件认为可执行程序进行执行,所以下载就出错了。
      

  3.   

    pengxuan(网虫先生) ,你说的太正确了。
      
    因为我的IIS设置是用程序写,的不是让用户手工操作。
    不知道在程序中如何设置站点的执行许可改为‘无’。