Delphi   发布时间:2022-04-10  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了delphi – Http Post with indy大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的网络服务器上有一个简单的 PHP脚本,我需要使用http POST上传一个文件,我在Delphi中做.

这是我的代码与Indy,但是绝对不会工作,我无法弄清楚我没有正确的做法.如何查看我在服务器上发送的是否有这样的工具?

procedure TForm1.btn1Click(Sender: TObject);
var
  fname : String;
  MS,dump : TMemoryStream;
  http  : TIdhttp;

const
  CRLF = #13#10;
begin
  if PromptForFilename(fname,'',falsE) then
  begin
    MS := TMemoryStream.Create();
    Ms.LoadFromFile(fName);
    dump := TMemoryStream.Create();
    http := TIdhttp.Create();
    http.request.ContentType:='multipart/form-data;boundary =-----------------------------7cf87224d2020a';
    fname := CRLF + '-----------------------------7cf87224d2020a' + CRLF + 'Content-Disposition: form-data; name=\"uploadedfile\";filename=\"test.png"' + CRLF;
    dump.Write(fname[1],Length(fName));
    dump.Write(Ms.Memory^,Ms.SizE);
    fname := CRLF + '-----------------------------7cf87224d2020a--' + CRLF;
    dump.Write(fname[1],Length(fName));
    Showmessage(IntToStr(dump.SizE));
    Ms.Clear;
    try
    http.request.Method := 'POST';
    http.Post('http://posttestserver.com/post.php',dump,MS);
    Showmessage(PAnsiChar(Ms.Memory));
    Showmessage(IntToStr(http.ResponseCodE));
    except
    Showmessage('Could not bind socket');
    end;
  end;
end;
@H_944_7@解决方法
Indy有TIdMultipartFormDataStream为此目的:
procedure TForm1.SendPostData;
var
  Stream: TStringStream;
  Params: TIdMultipartFormDataStream;
begin
  Stream := TStringStream.Create('');
  try
   Params := TIdMultipartFormDataStream.Create;
   try
    Params.AddFile('File1','C:\test.txt','application/octet-stream');
    try
     http.Post('http://posttestserver.com/post.php',Params,Stream);
    except
     on E: Exception do
       Showmessage('Error encountered during POST: ' + E.messagE);
    end;
    Showmessage(Stream.DataString);
   finally
    Params.Free;
   end;
  finally
   Stream.Free;
  end;
end;

大佬总结

以上是大佬教程为你收集整理的delphi – Http Post with indy全部内容,希望文章能够帮你解决delphi – Http Post with indy所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。