⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fupload.pas

📁 Delphi编写的一个支持语法高亮显示和很多语言的文本编辑器
💻 PAS
字号:
unit fUpload;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FTPSock, Ftp, ComCtrls, iniFiles, ExtCtrls,
  CorelButton;

type
  TfrmUpload = class(TForm)
    pbProgress: TProgressBar;
    ftp: TMFtp;
    cboAccount: TComboBox;
    lblAccount: TLabel;
    lblProgress: TLabel;
    imgIcon: TImage;
    btnCancel: TCorelButton;
    procedure ftpFtpInfo(Sender: TObject; info: FtpInfo; addinfo: String);
    procedure ftpFileTransferred(Sender: TObject);
    procedure ftpFtpReady(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    SftpDir: String;
    bHitCancel: Boolean;
    state: Integer;
    sLocalFile: String;

    { Private declarations }
    procedure FTPIt(FileName: String; FTPDir: String;LocalFile: String);
  public
    FileName, FTPDir, LocalFile: String;

    { Public declarations }

  end;

var
  frmUpload: TfrmUpload;

implementation

{$R *.dfm}

procedure TfrmUpload.FTPIt(FileName: String; FTPDir: String;LocalFile: String);
var
  ini: TIniFile;
begin
  ini := TInifile.Create(ExtractFilePath(Application.ExeName) + 'accounts\' + FileName);
  ftp.Server := ini.Readstring('FTP', 'URL', '');
  ftp.username := ini.Readstring('FTP', 'Username', '');
  ftp.Password := ini.Readstring('FTP', 'Password', '');
  ftp.Port := ini.ReadInteger('FTP', 'Port', 0);
  ftp.InitialDirectory := FTPDir;
  ftp.ServerType := TMFTPServerType(ini.ReadInteger('FTP', 'ServerType', 0));
  ftp.TransferMode := TMFTPTransferType(ini.ReadInteger('FTP', 'TransferType', 0));
  if (ini.ReadBool('FTP', 'UseProxy', false)) then
    ftp.ProxyServer := ini.ReadString('FTP', 'ProxyServer', '');
  SLocalFile := LocalFile;
  state := 0;
  ftp.Login;
  sFTPDir := ftpDir;

  ini.Destroy;
//  close;
end;

procedure TfrmUpload.ftpFtpInfo(Sender: TObject; info: FtpInfo;
  addinfo: String);
begin
   case info of
      ftpDataTrace:
         if pbProgress.Visible then
            pbProgress.Position := FTP.BytesTransferred;
      ftpFileSize:
         pbProgress.Max := StrToInt(addinfo);
   end;
end;

procedure TfrmUpload.ftpFileTransferred(Sender: TObject);
begin
  close;
end;

procedure TfrmUpload.ftpFtpReady(Sender: TObject);
begin
{  if State = 0 then begin
    ftp.ChangeDirectory(sftpdir);
    state := 1;
  end}
  if state = 0 then begin
    ftp.PutFile(sLocalFile, ExtractFileName(sLocalFile));
    state := 2;
  end
  else
    close;
end;

procedure TfrmUpload.FormShow(Sender: TObject);
begin
  FTPIt(Filename, FTPDir, LocalFile);
end;

procedure TfrmUpload.btnCancelClick(Sender: TObject);
begin
  bHitCancel := True;
  ftp.StopTransfer;
  ftp.Disconnect;
end;

procedure TfrmUpload.FormCreate(Sender: TObject);
begin
  bHitCancel := False;
end;

procedure TfrmUpload.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if bHitCancel = False then
    ModalResult := mrOk;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -