我用microsoft.xmlhttp上传文件,microsoft.xmlhttp的send方法参数必须是oleVariant,我把要上传的文件读成char数组,然后拼起来付给oleVariant变量,这样对于文本文件一切ok,可是二进制文件就不行了,少了很多东西。谁能告诉我怎么才能够读二进制文件到oleVariant变量?
我是新手,请多帮忙了!先谢谢了!

解决方案 »

  1.   

    按文件流方式读呀:
    procedure TForm1.Button2Click(Sender: TObject);
      Var
       S, T: TFileStream; {文件流}
       SourceFileName,DestFileName:String;{源文件和目的文件名}
      Begin
       S := TFileStream.Create( SourceFileName, fmOpenRead );
       try
       T := TFileStream.Create( DestFileName,fmOpenWrite or fmCreate );
       try
       T.CopyFrom(S, S.Size ) ;
      finally
       T.Free;
      end;   finally
       S.Free;
       end; End;
    这是流文件拷贝的代码,你改一改就行了!
      

  2.   

    楼上的,你还没告诉我怎么样从二进制文件到oleVariant变量
      

  3.   

    楼上的,你还没告诉我怎么样从二进制文件到oleVariant变量。
    读到char数组中的是一些类似于:
    buffer=('M','Z',#184,#3,#0,#0......)其中只有像前面的两个'M','Z'能放到oleVariant变量中,其余的放不进去!
      

  4.   

    我想知道 你怎么就断定没有放到oleVariant中去呢?