Valery_B |
---|
Игорь_UUS,
procedure TForm1.Button1Click(Sender: TObject);
var
InputStream:TMemoryStream;
OutputStream:TStringStream;
begin
InputStream:=TMemoryStream.Create;
try
InputStream.LoadFromFile('C:\File.jpg');
OutputStream:=TStringStream.Create;
try
TNetEncoding.Base64.Encode(InputStream, OutputStream);
ShowMessage(OutputStream.DataString);
finally
OutputStream.Free;
end;
finally
InputStream.Free;
end;
end;
|
Спасибо... код рабочий, но в итоге сохраняет что-то не то...
сейчас у меня код такой:
function TSchedulerFrm.GetResourcesJSONArr: string;
var JSONArr : TJSONArray;
JSONObj : TJSONObject;
InputStream :TMemoryStream;
OutputStream:TStringStream;
begin
JSONArr := TJSONArray.Create;
try
FResourceCacheEdit.First;
while not FResourceCacheEdit.Eof do
begin
if FResourceCacheEdit.Edited = True then
begin
JSONObj := TJSONObject.Create;
..
..
if not FResourceCacheEdit.MSEV1Miniature.isNULL then
begin
InputStream := TMemoryStream.Create;
try
FResourceCacheEdit.MSEV1Miniature.SaveToStream(InputStream);
InputStream.Position := 0;
OutputStream := TStringStream.Create;
try
TNetEncoding.Base64.Encode(InputStream, OutputStream);
JSONObj.AddPair(TJSONPair.Create(fnSCH_MSEV1Miniature, OutputStream.DataString));
finally
OutputStream.Free;
end;
finally
InputStream.Free;
end;
end;
// Сохраняем объект в массив.
JSONArr.AddElement(JSONObj);
end;
FResourceCacheEdit.Next;
end;
Result := JSONArr.ToString;
finally
JSONArr.Free;
end;
end;
Исходный файл имеет размер 11556, то что сохраняется в БД имеет больший размер 11859. При этом если посмотреть "поток" данных, то в самом начале он идентичен, к середине потока появляется "какой-то мусор"... но самое интересное файл заканчивается тем же потоком что и исходный.
То что отправил в MSSQL читаю след. образом: