zoukankan      html  css  js  c++  java
  • 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 SettingsAdministrator桌面	estweb.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.
  • 相关阅读:
    rocketmq手工创建topic出错
    rocketmq
    redis基本操作命令key命令+string命令+事务操作命令
    Redis启动常用管理命令
    --环比去年,row_number() over()取最新版本
    二分查找
    使用Python实现的4种快速排序算法
    卷积神经网络的理解
    两个很赞的用法(count函数里的表达式+计算时间间隔)
    MySQL中exists和in的区别及使用场景
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3822421.html
Copyright © 2011-2022 走看看