文件如何通过BASE64编码为字符保存下来呢?

问答知识库用户 |浏览268次
收藏|2014/05/17 22:00
如题,想把一个二进制文件保存在XML里面,如何做呢?

满意回答

2014/05/17 22:00

下面的是图片保存到XML里以前用到的函数,参考下:
function ImageToBuffer(AImgFile: string): string;
var
  MyFileStream: TFileStream;
  EncoderMIME: TIdEncoderMIME;
begin
  Result:='';
  if FileExists(AImgFile) then
  begin
    EncoderMIME := TIdEncoderMIME.Create(nil);
    try
      MyFileStream := TFileStream.Create(AImgFile, fmOpenRead);
      try
        SetLength(Result, MyFileStream.Size);
        MyFileStream.Read(Result[1], MyFileStream.Size);
        Result := EncoderMIME.EncodeString(Result);
      finally
        MyFileStream.Free;
      end;
    finally
      EncoderMIME.Free;
    end;
  end;
end;
procedure BufferToImage(ABuffer: string; ASaveName: string);
var
  MyFileStream: TMemoryStream;
  DecoderMIME: TIdDecoderMIME;
begin
  if FileExists(ASaveName) then
    DeleteFile(ASaveName);
  try
    if Trim(ABuffer) = '' then Exit;
    DecoderMIME := TIdDecoderMIME.Create(nil);
    try
      MyFileStream := TMemoryStream.Create;
      try               
        ABuffer := DecoderMIME.DecodeToString(ABuffer);
        MyFileStream.Write(ABuffer[1], length(ABuffer));
        MyFileStream.SaveToFile(ASaveName);
      finally
        MyFileStream.Free;
      end;
    finally
      DecoderMIME.Free;
    end;
  except
    on E:Exception do
    begin
      ASaveName := '';
      WriteLogs('DeskTopShow', 'BufferToImage' + E.Message);
    end;
  end;
end;

热心网友

其他回答(0)
0人关注该问题
待解决问题



+1
 加载中...