各位大虾,我现在要在我的程序中实现文件的上传和下载功能,谁哪里有代码?帮忙参考参考,文件类型限于word和excel

解决方案 »

  1.   

    分够高啊!
    FTP 网络开发即可
      

  2.   

    真是高分。
    貌似网上很多例子。unit UpDownFile;interfaceuses
        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;implementationfunction 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. 代码不是我写,在csdn上面一个人的博客里面看见的,他又是转载的,反正关系很复杂的,不说了,自己看看!
      

  3.   

    能不能说的具体点?或者具体的代码,我刚刚接触delphi,功能就和E_Mail中的附件功能类似,
    但是这个是在局域网中
      

  4.   

    下载IdFTP1.Host := '主机地址';
    IdFTP1.Username := '用户名';
    IdFTP1.Password := '密码';
    if IdFTP1.Connected then IdFTP1.Disconnect;
    IdFTP1.Connect();
    try
    IdFTP1.Get('\data\远程文件名','本地文件名',True);
    except上传IdFTP1.Host := '主机地址';
    IdFTP1.Username := '用户名';
    IdFTP1.Password := '密码';
    if IdFTP1.Connected then IdFTP1.Disconnect;
    IdFTP1.Connect();
    try
    IdFTP1.Put('data/本地文件名','远程文件名');
    except
      

  5.   

    再给你找了个教程,很基础滴,适合你。多多努力。
    不要辜负了delphi。看这里教程
      

  6.   

    我倒是做过一个java部分的, 解析http header, 或许在逻辑和算法部分能够有所帮助, 不过最主要是http协议部分要多看看
    http://www.cppblog.com/Khan/archive/2007/01/05/11132.html
      

  7.   

    用 ICS  ftp  组件 更方便 稳定
      

  8.   

    FTP,很基础的,楼主随便找个基础的教程来看看,估计十分钟就能自己搞定了
      

  9.   

    在你的机器上配置一下FTP,用本机作服务器http://www.oray.cn/Ask/Question-10868.html使用indy中idftp测试连接  IdFTP1.Passive:=true;
      IdFTP1.Password:=Trim(EdtPass.Text);
      IdFTP1.Username:=Trim(EdtUser.Text);
      IdFTP1.Port:=StrToInt(Trim(EdtPort.Text));
      IdFTP1.Host:=EdtIP.Text;  try
        IdFTP1.Connect();
        application.MessageBox('FTP服务器连接成功!','提示',MB_OK+MB_ICONINFORMATION);
        IdFTP1.Disconnect;
      except
        on e:Exception do
        begin
          //WriteLog('FTP服务器连接失败,'+e.Message);
          Application.MessageBox('FTP服务器连接失败!'+e.Message,'警告',mb_ok+mb_iconwarning);
          IdFTP1.Disconnect;
        end;
      end;下载IdFTP1.Host := '主机地址';
    IdFTP1.Username := '用户名';
    IdFTP1.Password := '密码';
    if IdFTP1.Connected then 
      IdFTP1.Disconnect;
    IdFTP1.Connect();
    try
      IdFTP1.Get('\data\远程文件名','本地文件名',True);
    except
      on e:Execption do
        showmessage(e.Message);
    end;上传IdFTP1.Host := '主机地址';
    IdFTP1.Username := '用户名';
    IdFTP1.Password := '密码';
    if IdFTP1.Connected then 
      IdFTP1.Disconnect;
    IdFTP1.Connect();
    try
      IdFTP1.Put('data/本地文件名','远程文件名');
    except
      on e:Execption do
        showmessage(e.Message);
    end;