图片的该怎么传送!!!!!(100分)

  • 主题发起人 主题发起人 ReallyFail
  • 开始时间 开始时间
R

ReallyFail

Unregistered / Unconfirmed
GUEST, unregistred user!
一个三层的程序,服务器有固定的IP。现在要将客户端的图片存到服务器中的指定目录中去
这该如何解决??是否要自己去写套接字来传图片文件????
 
你用的是什么结构的三层?既然是三层了就没必要自己写套接字传送文件
 
用SOCKETCONNECTION来连接服务器上面的数据库!
 
图片---流----发送----流----目录
 
写一个SocketConnection1.AppServer的方法
 
我在看看书!
 
程序大致如下,你可以參考一下:
--------------------------------------------------------------
1.服務器端:(假設該服務器對像名稱為FileServer)
procedure TFileServer.PutFile(const FileName: WideString;
const Data: OleVariant);
var
FStream:TFileStream;
P: Pointer;
begin
FStream:=TFileStream.Create(FileName,fmCreate or fmOpenWrite);
try
P:=VarArrayLock(Data);
try
FStream.WriteBuffer(P,VarArrayHighBound(Data,1)-1);
finally
VarArrayUnLock(Data);
end;
finally
FStream.Free;
end;
end;

--------------------------------------------------------------
2.客戶端:
function FileToVariant:OleVariant;
var
FStream:TFileStream;
P:Pointer;
begin
FStream:=TFileStream.Create('C:/123.txt',fmOpenRead);
try
Result:=VarArrayCreate([0,FStream.Size-1],varByte);
P:=VarArrayLock(Result);
try
FStream.ReadBuffer(P^,FStream.Size);
finally
VarArrayUnLock(Result);
end;
finally
FStream.Free;
end;
end;

procedure SaveFile(const FileName:string);
var
V:OleVariant;
Ref:IFileServer;
begin
V:=FileToVariant(FileName);
Ref:=CoFileServer.CreateRemote('192.168.1.1');
Ref.PutFile(FileName,V);
Ref:=nil;
end;
 
我有现成的程序。
 
to Sachow:
如果代码有困难的说能不能说说大体的思路,因为小弟我做三层还很少!!
还有谢谢smokingroom,正在试你的方法!
 
我认为只是进行文件传输没有必要用scoket,可以直接用流进行操作,效果很好
 
上面還有個小錯誤:
FStream.WriteBuffer(P,VarArrayHighBound(Data,1)-1);
應為:
FStream.WriteBuffer(P^,VarArrayHighBound(Data,1)-1);
 
出现拒绝访问错误,现正在查离线资料!!
 
1.在服務器中安裝成COM+組件.並且導出"客戶端安裝程序".
2.在客戶端安裝"客戶端安裝程序"
 
看一下delphi带的demo
关于Indy的FTP的demo
//delphi6
 
谢谢各位的指点,由于时间关系用了smokingroom的代码。相信其他老兄的方法也是可以的
但实在没时间去试了!谢谢
 
后退
顶部