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.
  • 相关阅读:
    Robocopy进行大量迁移
    以日期为文件名
    office outlook 無法開啟 outlook 視窗
    Dell R420 RAID建立以及系统安装
    CentOS系统如何设置服务开机自动运行
    Win10系统怎样让打开图片方式为照片查看器
    Download Software Top 10
    CentOS 5.11安装配置LAMP服务器(Apache+PHP5+MySQL)
    建模时,什么时候用值对象,什么时候用子表
    缓存穿透、缓存雪崩、缓存击穿的概念和解决方案
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3822421.html
Copyright © 2011-2022 走看看