gpt4 book ai didi

web-services - 使用Delphi 2007将Base64字符串作为二进制文件保存到磁盘

转载 作者:行者123 更新时间:2023-12-03 19:06:02 25 4
gpt4 key购买 nike

我有一个Base64二进制字符串,它是由第三方供应商发送给我们的XML文档的一部分,我希望能够将其保存回其原始文件格式(jpg)。

使用这个问题"saving a base64 string to disk as a binary using php"的可接受答案,我可以毫不费力地将字符串保存为jpg,因此我知道该字符串格式良好,并且是JPG文件。

但是如何在Delphi 2007中做到这一点?

在网上查看时,我找到了一个有关如何将Base64转换为TByteDynArray并保存的教程,但是它不能正常工作。我也玩过Indy的IdDecoderMIME,但没有成功。

有谁知道该怎么做,或者我应该去哪里看?

最佳答案

OmniXML项目中的OmniXMLUtils.pas包含以下功能:

function  Base64Decode(encoded, decoded: TStream): boolean; overload;
function Base64Decode(const encoded: string; decoded: TStream): boolean; overload;
function Base64Decode(const encoded: string; var decoded: string): boolean; overload;
function Base64Decode(const encoded: string): string; overload;
procedure Base64Encode(decoded, encoded: TStream); overload;
procedure Base64Encode(decoded: TStream; var encoded: string); overload;
function Base64Encode(decoded: TStream): string; overload;
function Base64Encode(const decoded: string): string; overload;
procedure Base64Encode(const decoded: string; var encoded: string); overload;


Base64Decode(string,TStream)应该可以解决问题。对于TStream参数,可以像这样将其传递给TFileStream:

procedure SaveBase64ToFile(const encoded, fileName: string);
var
fs: TFileStream;
begin
fs := TFileStream.Create(fileName, fmCreate);
try
if not Base64Decode(encoded, fs) then
raise Exception.Create('Invalid data!');
finally FreeAndNil(fs); end;
end;

关于web-services - 使用Delphi 2007将Base64字符串作为二进制文件保存到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/690475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com