delphi 实现文件上传下载

unit UpDownFile;

interface

uses
    Windows, Classes, Idhttp, URLMon, IdMultipartFormData;

const UpUrl = 'http://127.0.0.1/upfile/upfile.asp';
const UpFileName = 'C:\Documents and Settings\Administrator\桌面\test\web.mdb';
const DownUrl = 'http://www.google.com/images/logo_sm.gif';
const DownFileName = 'web.gif';

type
    TUpDownFile = class
    private
      FThreadID : DWord;
      FHandle : THandle;
    { Private declarations }
    public
        constructor Create;
        procedure UpFile;
        procedure DownFile;
        procedure Close;
    end;

implementation

function UpFileEx(): string; stdcall;
var
    MutPartForm: TIdMultiPartFormDataStream;
    response: string;
    FHttp: Tidhttp;
begin
    FHttp := Tidhttp.Create(nil);
    FHttp.HandleRedirects := true;
    FHttp.AllowCookies := true;

    MutPartForm := TIdMultiPartFormDataStream.Create;
    MutPartForm.AddFormField('act', 'upload');
    MutPartForm.AddFormField('upcount', '1');
    MutPartForm.AddFormField('filepath', 'data');
    MutPartForm.AddFormField('file1', 'filename="' + UpFileName + '"');
    MutPartForm.AddFormField('Submit', 'Submit');
    MutPartForm.AddFile('file1', UpFileName, 'text/plain');
    try
        response := FHttp.Post(UpUrl, MutPartForm);
    //Messagebox(0, PAnsiChar(response), 'ca', MB_OK);
    finally
        MutPartForm.Free;
        FHttp.Free;
    end;
end;

function DownFileEx(): string; stdcall;
begin
    UrlDownloadToFile(nil, PChar(DownUrl), PChar(DownFileName), 0, nil);
end;

constructor TUpDownFile.Create;
begin
    //
end;

procedure TUpDownFile.UpFile;
begin
    //FHandle := CreateThread(nil,0,@UpFileEx,nil,0,FThreadID);
    UpFileEx;
end;

procedure TUpDownFile.DownFile;
begin
   // FHandle := CreateThread(nil,0,@DownFileEx,nil,0,FThreadID);
   DownFileEx;
end;

procedure TUpDownFile.Close;
begin
  //ExitThread(FThreadID);
end;

end.

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值