📄 uploadunit.pas
字号:
unit UpLoadUnit;
interface
uses
Classes, IdTCPServer,IdGlobal,ComCtrls,SysUtils;
type
TUpLoadThread = class(TThread)
private
TheFileName:String;
TheFileSize:integer;
TheUserName:String;
SysThread:TIdPeerThread;
Procedure RegisteLog;
protected
procedure Execute; override;
Public
constructor Create(TFN,TUN:String;TheLen:integer;AThread:TIdPeerThread);
destructor Destroy; override;
end;
implementation
uses APFUnit,Unit2;
constructor TUpLoadThread.Create(TFN,TUN:String;TheLen:integer;AThread:TIdPeerThread);
begin
inherited Create(True);
TheFileName:=TFN;
TheUserName:=TUN;
TheFileSize:=TheLen;
SysThread:=AThread;
FreeOnTerminate:=True;
Suspended := false;
Priority:=tpTimeCritical;
end;
procedure TUpLoadThread.RegisteLog;
var
TheListItem:TListItem;
begin
if Form2.LogCheckBox.Checked=false then exit;
TheListItem:=Form2.ListView5.Items.Insert(0);
TheListItem.Caption:=SysThread.Connection.Socket.Binding.PeerIP;
TheListItem.StateIndex:=9;
TheListItem.SubItems.Add(TheUserName);
TheListItem.SubItems.Add('文件上传');
TheListItem.SubItems.Add(TheFileName);
TheListItem.SubItems.Add(DateTimeToStr(now));
end;
procedure TUpLoadThread.Execute;
var
SaveFStream:TFileStream;
begin
Synchronize(RegisteLog);
try
SaveFStream:=TFileStream.Create(TheFileName,fmCreate);
except
SysThread.Terminate;
self.Terminate;
exit;
end;
SaveFStream.Size:=0;
try
SysThread.Connection.ReadStream(SaveFStream,TheFileSize,False);
except
SaveFStream.Free;
SysThread.Terminate;
self.Terminate;
exit;
end;
SaveFStream.Free;
SysThread.Terminate;
self.Terminate;
end;
destructor TUpLoadThread.Destroy;
begin
inherited destroy;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -