使用NMHTTP如何POST文件到服务器?谢谢(100分)

  • 主题发起人 主题发起人 finelin
  • 开始时间 开始时间
为什么用nmhttp呢,用nmftp或NMStrm,NMStrmServ不好吗?
---------------------------------------------------------
(一)用nmstrm,nmstrmserv

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Psock, NMSTRM;

type
TForm1 = class(TForm)
NMStrm1: TNMStrm;
NMStrmServ1: TNMStrmServ;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure NMStrmServ1MSG(Sender: TComponent; const sFrom: String;
strm: TStream);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
MyStream: TMemoryStream;
begin
MyStream:= TMemoryStream.Create;
try
NMStrm1.Host:='127.0.0.1';
MyStream.LoadFromFile('c:/test.exe');
NMStrm1.FromName:='c:/test1.exe'; //发送一个文件名
NMStrm1.PostIt(MyStream);
finally
MyStream.Free;
end;
end;

procedure TForm1.NMStrmServ1MSG(Sender: TComponent; const sFrom: String;
strm: TStream);
var
MyStream: TMemoryStream;
begin
MyStream := TMemoryStream.Create;
MyStream.LoadFromStream(strm);
MyStream.SaveToFile(sFrom);
end;

end.

而且Delphi有自带的一个例子,在Delphi/demo/fastnet/strm目录里就是实现的文件传输。

-----------------------------------------------------------------------
(二)用nmftp

给个通俗的:(ftp客户方用fastnet下的nmftp控件)
nmftp1.Host:=xxx.xxx.xxx.xxx;
nmftp1.port:=21;
nmftp1.Connect;
nmftp1.userid:=xxx;
nmftp1.password:=xxx;
nmftp1.reportlevel:=1;
nmftp1.timeout:=xxxx;
nmftp1.Download(ftp服务器上的文件,存为本地哪个文件); (下载)
nmftp1.Abort;(暂停下载)
nmftp1.Downloadrestore(ftp服务器上的文件,存为本地哪个文件);(下载的断点续传)
nmftp1.upload(xxxxx,xxxxx); (上传)
nmftp1.upload(xxx.xxxx); (上传的断点续传)
如果你想自己做一个ftp服务器,delphi没有自带的控件
可以用ics控件组上的ftpserver控件
 
时间太长,强制结素
 
后退
顶部