如题,我一般把需要更新的文件放在服务器的一个目录下,然后想写个程序让客户下载更新这些文件
解决方案 »
- 一个高难度的问题!哪个高手能解决???
- 求大家给点dll 与bpl开发的资料.我一定结贴.不结取不到媳妇
- 用delphi编译生成的EXE文件都比较大,怎样有效减小他的大小
- 关于TStringList类的问题:
- delphi将excel转换为dbf文件
- delphi 将TLisBox 中的内容保存成txt文件的问题?
- 关于键盘hook
- 如何用DELPHI实现创建新表?
- 程序如何实现将最小化按钮变灰掉,及该程序在任务栏的弹出式菜单中最小化选项一起变灰?
- 如何将一个表中的内容以树形的形式显示出?
- 关于ADO更新自带*.db数据库问题
- 在DataSource 里用什么提交ltBatchOptimistic锁定的记录的修改
然后用IDFTP做个客户端的下载程序即可也可以把程序放在数据库中,供客户端用户下载....
var
tStream: TFileStream;
begin //Http方式下载
if FileExists(aFile) then //如果文件已经存在
tStream := TFileStream.Create(aFile, fmOpenWrite) else
tStream := TFileStream.Create(aFile, fmCreate); if bResume then //续传方式
begin
IdHTTP1.Request.ContentRangeStart := tStream.Size - 1;
tStream.Position := tStream.Size - 1; //移动到最后继续下载
IdHTTP1.Head(aURL);
IdHTTP1.Request.ContentRangeEnd := IdHTTP1.Response.ContentLength;
end else //覆盖或新建方式
begin
IdHTTP1.Request.ContentRangeStart := 0;
end; try
IdHTTP1.Get(aURL, tStream); //开始下载
finally
tStream.Free;
end;
end;
tStream: TFileStream;
sName, sPass, sHost, sPort, sDir: string;
begin //ftp方式下载
if FileExists(aFile) then //建立文件流
tStream := TFileStream.Create(aFile, fmOpenWrite) else
tStream := TFileStream.Create(aFile, fmCreate); GetFTPParams(aURL, sName, sPass, sHost, sPort, sDir);
with IdFTP1 do
try
if Connected then Disconnect; //重新连接
Username := sName;
Password := sPass;
Host := sHost;
Port := StrToInt(sPort);
Connect;
except
exit;
end; IdFTP1.ChangeDir(sDir); //改变目录
BytesToTransfer := IdFTP1.Size(aFile);
try
if bResume then //续传
begin
tStream.Position := tStream.Size;
IdFTP1.Get(aFile, tStream, True);
end else
begin
IdFTP1.Get(aFile, tStream, False);
end;
finally
tStream.Free;
end;
end;