各位大虾,我正在做一个办公文件流转系统(和网易163邮件类似的功能),可以收发邮件包括上传/下载附件
我采取delphi2007+mssql,想主要实现以下几个功能
1:文件上传
2:把文件从服务器中保存到本机上
3:当有新的邮件收到时,能象csdn一样有系统消息提醒.
--第二个功能的代码
with adoquery1 do
    begin
      close;
      sql.clear;
      sql.Add(str);
      open;
      last;
      Tblobfield(fieldbyname('attach_file')).savetostream(srm);
      filename:=fieldbyname('file_name').AsString ;
      label1.Caption :=filename;
      srm.Position :=0;
      olecontainer1.LoadFromStream(srm);
      if savedialog1.Execute  then
         olecontainer1.SaveToFile(savedialog1.FileName); 
      srm.Free ;
    end;第一个功能我自己搞定了。
第二个就有问题了,比如保存一个word文件到本机时是一些乱码,图象打开时,显示不出来.
第三个还在摸索中。
请大家发表下自己的看法,谢谢。
 

解决方案 »

  1.   

    第二个功能还存在一个问题就是当savedialog打开时,被保存的文件不知是哪种后缀名。如果直接输入文件名不输入后缀名的话,等下这个文件就打不开。
      

  2.   

    第三个功能源码,下载地址http://download.csdn.net/source/325443unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, ShellAPI;type
      TForm1 = class(TForm)
        Image1: TImage;
        Timer1: TTimer;
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure Image1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Timer1Timer(Sender: TObject);
    var i:integer;
    begin
      if Form1.Top>Screen.WorkAreaHeight-Form1.Height then
      begin
         Form1.Top:=Form1.Top-1;
         Form1.Top:=Form1.Top-1;
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Form1.Left:=Screen.Width-Form1.Width-20;
      Form1.Top:=Screen.WorkAreaHeight;
    end;procedure TForm1.Image1Click(Sender: TObject);
    begin
      Form1.Close;
    end;end.
      

  3.   


    3的哪个就定时去读收件箱吧,有了就提示,这个不难吧------------
    如果客户端都实时去读收件箱,sql数据库不会挂掉。我想应有什么触发事件吧,大家说说看