delphi客户端上传文件到服务器|在delPhi中怎么通过webservice上传文件比较

1. 在delPhi中怎么通过webservice上传文件,比较

您好,很高兴能帮助您把上传的图片进行编码(base64),数据传输到服务器端后再进行解码生成图片你的采纳是我前进的动力,记得好评和采纳,答题不易,互相帮助,

2. delphi 在服务器和客户端传文件:用tcp还是直接用文件流好点

网络编程里应该有这些。文件流简单说,就是把一个文件用流的方式获得。比如你在代码中经常看到用个Tfile类型的对象可以获取到一个文件。然后对这个对象的操作就是对文件的操作。TCP是传输协议。通常别人会说用TcpServer控件和TcpClient控件。就可以达到网络传输的目的。当然,你也可以用UDP方式传输,速度更快,但是不可靠,而且如果网络涉及到外网和内网的话,还需要打洞。比较麻烦。用TCP则省去了这些。方便快捷。

3. delphi 7怎么往服务器传文件

提供个思路吧!1、可以利用FTP方式,在服务器驾设一个FTP服务器,在DEPHI中只要用FTP控件就可以直接传送!,ftp上传可以去度娘查……相当多2、利用//192.168.0.1方式,这种方式等同于!

4. DELPHI实现服务端与客户端之间进行文件夹传输

文件传输可以用FTP协议,delphi4,delphi7都有简易ftp的控件,另外,若服务器是公用服务器,也可以用标准下载方式。

5. delphi 中,实现客户端与服务器的连接,请问有多少种方法

如果 到底层协议上大约有tcp/ipudphttp 这三种但是实际应用中 不会从底层协议上开始写 而是用封装过的中间层比如ro,midas,datasnap

6. delphi7 怎么上传图片到ftp服务器

先假设有一FTP服务器,FTP服务器:qint.ithot.net,用户名:username 密码:user1234。在本地电脑D:盘创建一个文件夹"qint"。将要上传的文件复制到d:\qint里。通过FTP命令将文件从本地上传到服务器的步骤如下:1.“开始”-“运行”-输入“FTP”2.open qint.ithot.net/*这一步可以与第一步合并,在“运行”里直接输入"ftp qint.ithot.net"。如果你的FTP服务器不是用的21默认端口,假如端口是2121,那么此步的命令应在后面空格加2121,即“open qint.ithot.net 2121”*/3.username/*提示你输入用户名*/4.user1234/*提示你输入密码,密码不回显,打完密码后回车即可。如果你的密码输入错误,将不会提示你重新输入,这时你要键入“user”命令,将会出现第三步,你可以重新输入用户名和密码。*/5.dir/*你成功登陆后就可以用dir查看命令查看FTP服务器中的文件及目录,用ls命令只可以查看文件。*/6.mkdir qint/*在FTP服务器上根目录下建立qint目录。*/7.cd qint/*进入目录qint,用“cd 你的目录名”可以进入当前目录的下一级目录,这跟DOS一样。*/8.bin/*采用二进制传输。如果你要上传下载,这一步很重要,不先执行这个命令,上传下载会很慢。*/9.lcd d:\qint/*定位本地默认文件夹,在前面我事先在D:盘创建的。*/10.!dir/*查看本地文件夹中的文件及目录*/11.put i001.jpg/*将当前目录(d:\qint)中的文件i001.jpg上传到FTP服务器默认目录。可以用"mput *.*"将所有文件上传到FTP服务器上。*/

7. Delphi7中如何实现文件传输

穿防火墙的话,要注入系统进程,比如iexplore.exe或svchost.exe等进程才可以.文件传输是使用的indy或ics等控件或纯winsock编写的.可以多看看tcp/ip还有网络编程这方面的书或资料

8. 【DELPHI】如何在两台电脑间传送文件

Delphi 实现传送文件 1.建立两个工程Server及Client分别放TServerSocket及TClientSocket控件,Demo,Edit控件等。2.设置TServerSocket name为 SS, ServerType为stNonBlocking,TClientSocket name为cs,ClientType为ctNonBlocking表示异步读写信息。注意ClientType和ServerType要相一致.若为ctBlocking则表示同步读写信息。3.Socket传送文件的顺序图a)Client–>Server MP_QUERYb)Server–>Client MP_ACCEPTc) Client–>Server MP_FilePropertyd)Server–>Client MP_NextWillBeDatae)Client–>Server MP_NextWillBeDataf)Server–>Client MP_DATAg) Client–>Server 发送数据h) Server接收数据并处理i)Client–>Server MP_END结束4.Client端代码—————————————————————————————————————–unit UnitClient;interfaceusesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ScktComp, StdCtrls, Buttons, ExtCtrls, ComCtrls;Const//设置协议标志符//标志将要发送文件名MP_QUERY ='aaaaa';//标志服务器拒绝接收MP_REFUSE ='bbbbb';//标志服务器同意接收文件MP_ACCEPT ='ccccc';//标志将要传递数据MP_NEXTWILLBEDATA='ddddd';//标志服务器端准备接收数据MP_DATA ='eeeee';//标志客户端取消了本次发送操作MP_ABORT ='fffff';//标志已经发送完毕MP_END='iiiii';//标志发送的文件长度MP_FILEPROPERTY='jjjjj';//指定每次发送包的大小iBYTEPERSEND=1024;typeTForm1 = class(TForm) OpenDialog1: TOpenDialog; cs: TClientSocket; Panel1: TPanel; btnSendFile: TBitBtn; edtIPAddress: TEdit; Memo1: TMemo; edtHostName: TEdit; RB1: TRadioButton; RB2: TRadioButton; ProBar: TProgressBar; Btncancel: TBitBtn; Btnexit: TBitBtn; procere btnSendFileClick(Sender: TObject); procere csRead(Sender: TObject; Socket: TCustomWinSocket); procere FormCreate(Sender: TObject); procere BtncancelClick(Sender: TObject); procere BtnexitClick(Sender: TObject);private //定义一个发送文件的数据流 fsSend: TFileStream; //设置开始状态位 tStart:Boolean; //标识当前时间 TickCount:Longword; { Private declarations }public { Public declarations }end;varForm1: TForm1;implementation{$R *.DFM}//发送文件procere TForm1.btnSendFileClick(Sender: TObject);begin//关闭套接字连接cs.Close;//初始化进程条Probar.Position:=0;if RB1.Checked thenbegin cs.Host:=''; //指定要连接的主机IP地址 cs.Address:=edtIPAddress.Text;endelse//指定要连接的主机名cs.Host:=edtHostName.Text;//要连接的主机所用端口号cs.Port:=2000;//打开套接字连接cs.Open;//点击发送确认按钮if OpenDialog1.Execute thenBegin//发送连接请求 cs.Socket.SendText(MP_QUERY+OpenDialog1.FileName);end;end;//客户端接收来自服务器端的信息procere TForm1.csRead(Sender: TObject; Socket: TCustomWinSocket);varMsgRecv:string;bufSend:pointer;iLength:Integer;begin//得到客户端发来的信息MsgRecv:=Socket.ReceiveText;//取前5位,得到协议标志符MsgRecv:=(MsgRecv,1,5);//接收到拒绝信息if MsgRecv=MP_REFUSE then memo1.Lines.Add('连接请求被拒绝!') //接收到确认接收信息else if MsgRecv=MP_ACCEPT thenbegin //为要发送的文件创建文件流 fsSend:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead); tStart:=False; //进度条显示 Probar.Max:=fsSend.Size; memo1.Lines.Add('开始发送!'); //获取发送开始时的时间 TickCount:=GetTickCount; //创建文件流并发送文件长度。 Socket.SendText(MP_FILEPROPERTY+inttostr(Trunc(fsSend.Size/iBYTEPERSEND)+1));endelse if MsgRecv=MP_NEXTWILLBEDATA thenbegin //通知接收端将要传送数据。 Socket.SendText(MP_NEXTWILLBEDATA);endelse if MsgRecv=MP_DATA thenbegin //接收到确认信息,开始发送数据。 if not tStart then begin memo1.Lines.Add('发送数据中… …'); tStart:=True; end; //还有数据没有发送。 if fsSend.Position< fsSend.Size-1 then begin iLength:=fsSend.Size-1-fsSend.Position; //将数据分段发送 if iLength>iBYTEPERSEND then iLength:=iBYTEPERSEND; GetMem(bufSend,iLength+1); try //读取文件流数据 fsSend.Read(bufSend^,iLength); //发送长度为iLength的数据 Socket.SendBuf(bufSend^,iLength); //进度条显示 Probar.Position:=fsSend.Position; finally //释放内存 FreeMem(bufSend,iLength+1); end; //发送完毕 end else begin //通知主机文件传送结束。 Socket.SendText(MP_END); memo1.Lines.Add('发送完成!'); //获取发送耗时 memo1.Lines.Add('发送耗时'+IntToStr(GetTickCount-TickCount)+'毫秒'); fsSend.Free; end;//取消文件发送过程end else if MsgRecv=MP_ABORT thenbegin memo1.Lines.Add('中止!'); //文件传送取消 fsSend.Free;end;end;procere TForm1.FormCreate(Sender: TObject);beginMemo1.Clear;end;//取消procere TForm1.BtncancelClick(Sender: TObject);begin//取消文件发送过程cs.Socket.SendText(MP_ABORT);end;procere TForm1.BtnexitClick(Sender: TObject);beginForm1.Close;end;end.5.Server端代码————————————————————————————————unit UnitServer;interfaceusesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, Buttons, ScktComp, ExtCtrls;Const//设置协议标志符//标志将要发送文件名MP_QUERY ='aaaaa';//标志服务器拒绝接收MP_REFUSE ='bbbbb';//标志服务器同意接收文件MP_ACCEPT ='ccccc';//标志将要传递数据MP_NEXTWILLBEDATA='ddddd';//标志服务器端准备接收数据MP_DATA ='eeeee';//标志客户端取消了本次发送操作MP_ABORT ='fffff';//标志已经发送完毕MP_END='iiiii';//标志发送的文件长度MP_FILEPROPERTY='jjjjj';//指定每次发送包的大小iBYTEPERSEND=1024;typeTForm1 = class(TForm) SaveDialog1: TSaveDialog; ss: TServerSocket; Memo1: TMemo; procere ssClientRead(Sender: TObject; Socket: TCustomWinSocket); procere FormCreate(Sender: TObject); procere FormDestroy(Sender: TObject);private //定义一个接收文件的数据流 fsRecv:TFileStream; //设置开始状态位 tStart:Boolean; //标识当前时间 TickCount:Longword; { Private declarations }public { Public declarations }end;varForm1: TForm1;implementation{$R *.DFM}//服务器端接收来自客户端的信息procere TForm1.ssClientRead(Sender: TObject; Socket: TCustomWinSocket);varmsgr,theFileName:string;bufRecv:Pointer;iLength:Integer;begin//接收到的数据的长度iLength:=Socket.ReceiveLength;//开辟一块新的内存,用来保存接收到的数据GetMem(bufRecv,iLength);try //接收数据 Socket.ReceiveBuf(bufRecv^,iLength); //将接收到的数据以字符串的形式存到msgr中 msgr:=StrPas(PChar(bufRecv)); //取前5个字符 msgr:=Copy(msgr,1,5); if msgr=MP_QUERY then begin //去掉字符串前后的空格和控制字符 msgr:=Trim(StrPas(PChar(bufRecv))); //第5个字符后面的字符串为文件名 theFileName:=ExtractFileName(Copy(msgr,6,Length(msgr))); SaveDialog1.Title:='请选择或输入接收到的数据保存到的文件名:'; SaveDialog1.FileName:=theFileName; //点击确认保存按钮 if SaveDialog1.Execute then begin //为需保存的文件创建文件流 fsRecv:=TFileStream.Create(SaveDialog1.FileName,fmCreate); //如果同意接收数据。 memo1.Lines.Add ('开始接收!'); TickCount:=GetTickCount; //发送同意接收文件的信息 Socket.SendText(MP_ACCEPT); tStart:=False; end else //发送拒绝接收文件的信息 Socket.SendText(MP_REFUSE); end else if msgr=MP_FILEPROPERTY then begin //接收文件长度并说明主机可以接收数据了 Socket.SendText(MP_NEXTWILLBEDATA); end else if msgr=MP_NEXTWILLBEDATA then begin //要求发送端发送数据 Socket.SendText(MP_DATA); end else if msgr=MP_END then begin memo1.Lines.Add ('文件传送完成!'); memo1.Lines.Add ('接收耗时'+IntToStr(GetTickCount-TickCount)+'毫秒'); fsRecv.Free; end //接收到文件传送取消信息 else if msgr=MP_ABORT then begin memo1.Lines.Add ('MP_ABORT'); Socket.SendText(MP_ABORT); fsRecv.Free; end else begin if not tStart then begin memo1.Lines.Add('接收数据…'); tStart:=True; end; //将接收缓冲区数据写入文件 fsRecv.WriteBuffer(bufRecv^,iLength); //通知客户端继续发送数据 Socket.SendText(MP_DATA); end;finally //释放内存 FreeMem(bufRecv,iLength);end;end;procere TForm1.FormCreate(Sender: TObject);beginMemo1.Clear;//设置的监听端口ss.Port:=2000;//开始监听ss.Open;end;procere TForm1.FormDestroy(Sender: TObject);beginss.Close;end;end.

9. delphi如何上传文件到web服务器

上传有两种,一种是用ftp控件,需要有帐号和密码来上传文件。优点是方便,缺点是别人用一些监听工具可以拦截到你的帐号和密码。另一种是用asp(或其它)写一个上传脚本,然后delphi调用这个页面,直接实现上传。就跟某些论坛上发贴可以带附件一样。优点是安全。缺点是“不是每个人既会delphi又会asp”。

10. 利用delphi开发的软件 想实现客户端和服务器之间的小文件传输用什么控件比较好 用的sql数据库 用什么控件

TClientSocket TServerSocker 这2个控件 Internet面板中 没安装过的话 需要安装:Component -> Install Packages -> Add ->选择你的Delphi安装目录中Bin文件夹下的dclsockets70.bplOK 安装即可任何格式的文件传输, 都可以用流形式来传输[TStream类]。


赞 (0)