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.
  • 相关阅读:
    在IIS7中应用Application Request Routing配置反向代理
    sqlite数据类型(时间 日期 ) timestamp 使用
    Windows环境下搭建Redis集群(Redis-x64-3.2.100)
    Vertx上传 官网Demo Java版
    Vert.x HTTP 服务器与客户端
    vertx-mysql-client/java/
    vertx-jersey
    Vertx和Jersey集成使用
    jersey常用注解解释 JAX-RS常用注解:
    Statement及PreparedStatement执行多个sql
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3822421.html
Copyright © 2011-2022 走看看