delphi实现FTP上传与下载
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP; type
TForm1 = class(TForm)
IdFTP1: TIdFTP;
dlgOpen1: TOpenDialog;
btn1: TButton;
mmo1: TMemo;
btn2: TButton;
btn3: TButton;
edt1: TEdit;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm}
uses IdFTPList, IdFTPCommon; //这个上传和下载 是 纯用 idftp 客户端 来达到 下载和上传的功能, 没有写到ftp服务端的东西 {
本程序是一个ftp demo程序,我用windows信息服务在本机建立了一个ftp服务,
本机IP:192.168.10.99
用户名:cc my
密码:1 qwert
}
procedure TForm1.btn1Click(Sender: TObject);
var
tr : Tstrings;
begin //连接
tr := TStringlist.Create;
//IdFTP1.Host := '192.168.10.99'; //FTP服务器地址
IdFTP1.Host := '127.0.0.1'; //FTP服务器地址
IdFTP1.Port:= ; //注意端口号,这里不是默认的21,而是你自己设定的值
IdFTP1.Username := 'my'; //FTP服务器用户名
IdFTP1.Password := 'qwert'; //FTP服务器密码 IdFTP1.Connect(); //连接到ftp edt1.Text := IdFTP1.RetrieveCurrentDir;//得到初始目录
//IdFTP1.ChangeDir('client'); //进入到client子目录
//IdFTP1.ChangeDir('..'); //回到上一级目录
IdFTP1.List(tr); //得到client目录下所有文件列表
mmo1.Lines.Assign(tr);
tr.Free;
end; procedure TForm1.btn2Click(Sender: TObject);
var
tt :TIdFTPListItems;
t : TIdFTPListItem;
i : integer;
tfname : String;
begin //下载
//Label1.Caption := IdFTP1.DirectoryListing.Items[0].FileName;
IdFTP1.TransferType := ftBinary; //指定为二进制文件 或文本文件ftASCII
for i:= to IdFTP1.DirectoryListing.Count- do
begin
tt := IdFTP1.DirectoryListing; //得到当前目录下文件及目录列表
t := tt.Items[i]; //得到一个文件相关信息
// Label1.Caption :=t.Text; //取出一个文件信息内容
tfname := t.FileName;
// showmessage(t.OwnerName+' '+t.GroupName+' '+t.FileName+' '+t.LinkedItemName);
if IdFTP1.DirectoryListing.Items[i].ItemType = ditFile then //如果是文件
begin
IdFTP1.Get(tfname,ExtractFilePath(Application.ExeName)+tfname,True,True); //下载到本地,并为覆盖,且支持断点续传
end;
end;
end; procedure TForm1.btn3Click(Sender: TObject);
var
fi : string;
begin //上传
if dlgOpen1.Execute then
begin
fi := dlgOpen1.FileName;
//IdFTP1.Put('f:/测试文档样本.rar','测试文档样本.rar');//上传,
IdFTP1.Put(fi,ExtractFileName(fi));
end;
end; procedure TForm1.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
begin
{case AStatus of
hsResolving : showmessage('hsResolving');
hsConnecting: showmessage('hsConnecting');
hsConnected: showmessage('hsConnected');
hsDisconnecting: showmessage('hsDisconnecting');
hsDisconnected: showmessage('hsDisconnected');
hsStatusText: showmessage('hsStatusText');
ftpTransfer: showmessage('文件传送完毕。');
ftpReady: showmessage('准备传送文件....');
ftpAborted: showmessage('传送失败');
end; } //showmessage(AStatusText);
end; end.
delphi实现FTP上传与下载的更多相关文章
- FTP上传与下载
1.连接 先假设一个ftp地址 用户名 密码 FTP Server: 192.168.1.125 User: administrator Password: abc123 2. 打开win ...
- windows下定时利用bat脚本实现ftp上传和下载
前言: 工作中可能会遇到以下情况,利用windows作为中转,来实现两台linux服务器的文件传输. 实现步骤: 1.FTP上传和下载的bat脚本. 脚本分为两部分:可执行bat脚本和ftp命令文件: ...
- ftp上传或下载文件工具类
FtpTransferUtil.java工具类,向ftp上传或下载文件: package utils; import java.io.File; import java.io.FileOutputSt ...
- 使用python操作FTP上传和下载
函数释义 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件,函数列举如下 ftp登陆连接 from ftplib import F ...
- Java 实现FTP上传和下载
1. 目前网上开源的FTP Client主要有JFTP.FTP4.edtFtpjJ和Apache.FTPClient. 2. jftp地址:http://www.jmethods.com/ 3. ed ...
- ftp 上传和下载
ftp 下载 #!/bin/bash #auth liwei #date DATE=$(date -d today +%Y%m%d) #data files path SRCDIR=/home/web ...
- C# ftp 上传、下载、删除
public class FtpHelper { public static readonly FtpHelper Instance = new FtpHelper(); /// <summar ...
- 【Python学习 】Python实现的FTP上传和下载功能
一.背景 最近公司的一些自动化操作需要使用Python来实现FTP的上传和下载功能.因此参考网上的例子,撸了一段代码来实现了该功能,下面做个记录. 二.ftplib介绍 Python中默认安装的ftp ...
- FTP上传和下载文件的应用
FTP(File Transfer Protocol)协议主要用来在网络上进行文件传输.FTP通讯除了有一个默认的端口21外,还有其他端口,同城两个端口同时进行数据传输.一个是默认的端口(通常为21) ...
随机推荐
- Spark 调优
资源调优 (1). 在部署 spark 集群中指定资源分配的默认参数 在 spark 安装包的 conf 下的 spark-env.sh SPARK_WORKER_CORES SPARK_WORKER ...
- 实验吧-隐写术-刷新 刷新 快刷新(f5-steganography)
题目:刷新 刷新 快刷新 其实这就算是很好的提示了,刷新的时候就是F5嘛,这个题就是F5隐写,用f5-steganography来解题. 题中的图片: f5-steganography下载链接:htt ...
- Maven的安装和创建项目的过程
一.下载Maven包和配置环境变量 1.将下载好的maven包放到一个目录中:目录中不能有汉字和空格 2.配置环境变量 3.配置path路径 二.配置阿里云私服 1.找到setting目录,配置下载j ...
- Node.js NPM 作用
章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json NPM ...
- mysql 统计值为NULL不为0的问题
今天在写一个接口的时候是要统计数据,但是突然发现报错,类型不匹配的问题,我返回的是Int类型的为啥会类型不匹配呢,真的是奇怪 然后把代码丢到正式环境里面运行一下,发现值为null 一下子就傻眼了,不可 ...
- PHP的变量作用域-常亮-全局变量-表单提交变量
一.变量的作用域 作用域是指在一个脚本中某个变量在哪些地方可以使用或可见. 内置超级全局变量可以在脚本的任何地方使用和可见. 常量,一旦被声明,将可以在全局可见.也就是说,他们可以在函数内外使用. 在 ...
- Charles中windows版本解决response乱码问题
实际上三种,目前写了两种,加了之后有的不显示乱码,但是有的还是显示,第三种搜索结果是安装证书,但是本人安装后证书后未受到信任,所以暂时不知是否能够成功 1,在charles.ini中,手动增加一个vm ...
- Loadrunner安装与破解
一.安装loadrunner 1. 点击setup.exe 2. 点击安装完整程序 3. 点击确定,安装必需程序 4. 安装vc2005的时候报了如下错,导致无法继续安装,没有报错可跳过第五步 5. ...
- SQL约束攻击
本文转载自https://blog.csdn.net/kkr3584/article/details/69223010 目前值得高兴的是,开发者在建立网站时,已经开始关注安全问题了--几乎每个开发者都 ...
- linux 用户与文件常用命令
用户与文件 su :切换到超级用户 su - l chesney : 切换到chesney用户 sudo usermod -G sudo -a chesney:把chesney 加入到sudo组 su ...