在做SOAP的时候,发现上传到服务端程序就会有问题,而且都是delphi开发的,编码也是用的自带函数SOAP.endecd,于是在单机上进行测试,代码如下:var
input_str_stream:TStringStream;
input_mem_stream:TMemoryStream;
output_str_stream:TStringStream;
output_mem_stream:TMemoryStream; output_file,send_string:string;
begin
try
input_mem_stream:=TMemoryStream.Create;
output_mem_stream:=TMemoryStream.Create; input_mem_stream.LoadFromFile(edt1.Text);
input_mem_stream.SaveToFile('d:\temp_64_oldoutput.jpg');
input_str_stream:=TStringStream.Create;
input_mem_stream.SaveToStream(input_str_stream);
send_string:=EncodeBase64(input_str_stream,Length(input_str_stream.DataString));//编码 output_str_stream:=TStringStream.Create(DecodeBase64(send_string));
output_mem_stream.LoadFromStream(output_str_stream);
output_file:='D:\tmp_64_output.jpg';
output_mem_stream.SaveToFile(output_file); finally
input_str_stream.Free;
input_mem_stream.Free;
output_str_stream.Free;
output_mem_stream.Free; end;结果,源文件和解码出来的文件完全不一样
源文件:00-3F
FFD8FFE000104A4649460001010100
0000000000FFDB0043000806060706
05080707070909080A0C140D0C0B0B
0C1912130F141D1A1F1E1D1A1C1C20
242E2720
编码输出:00-3F
D8BB430048234D02545A0000545A00
000060000048234D02E02653020000
00000000000001000000B004020000
000000080000005400610062004F00
72006400
input_str_stream:TStringStream;
input_mem_stream:TMemoryStream;
output_str_stream:TStringStream;
output_mem_stream:TMemoryStream; output_file,send_string:string;
begin
try
input_mem_stream:=TMemoryStream.Create;
output_mem_stream:=TMemoryStream.Create; input_mem_stream.LoadFromFile(edt1.Text);
input_mem_stream.SaveToFile('d:\temp_64_oldoutput.jpg');
input_str_stream:=TStringStream.Create;
input_mem_stream.SaveToStream(input_str_stream);
send_string:=EncodeBase64(input_str_stream,Length(input_str_stream.DataString));//编码 output_str_stream:=TStringStream.Create(DecodeBase64(send_string));
output_mem_stream.LoadFromStream(output_str_stream);
output_file:='D:\tmp_64_output.jpg';
output_mem_stream.SaveToFile(output_file); finally
input_str_stream.Free;
input_mem_stream.Free;
output_str_stream.Free;
output_mem_stream.Free; end;结果,源文件和解码出来的文件完全不一样
源文件:00-3F
FFD8FFE000104A4649460001010100
0000000000FFDB0043000806060706
05080707070909080A0C140D0C0B0B
0C1912130F141D1A1F1E1D1A1C1C20
242E2720
编码输出:00-3F
D8BB430048234D02545A0000545A00
000060000048234D02E02653020000
00000000000001000000B004020000
000000080000005400610062004F00
72006400
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货