Использование Delphi 10.2.3,
Я хочу загрузить изображение из TStream на веб-сервер, используя TNetHTTPClient.Post и TMultipartFormData.
Моя проблема заключается в том, что класс TMultipartFormData неу меня есть функция AddStream (я предполагаю, что для генерации mime-типа ему нужно имя файла), поэтому я решил добавить свой собственный, так как заранее знаю типы mime (и правильное имя файла).
Я никогда не использовал наследование классов или помощников классов в Delphi 10.2.3, и, прочитав и опробовав это, я достиг точки, где явно что-то упускаю, но не могу понять, что.
Iпопробовал:
Type
TMultipartFormDataStream = class (TMultipartFormData)
procedure AddStream(AStream : TStream; const AFieldName, AFilePath: string);
end;
procedure TMultipartFormDataStream.AddStream(AStream : TStream; const AFieldName, AFilePath: string);
var
LType: string;
begin
AdjustLastBoundary;
WriteStringLn('--' + FBoundary);
WriteStringLn(sContentDisposition + ': form-data; name="' + AFieldName + '"; filename="' + ExtractFileName(AFilePath) + '"'); // do not localize
LType := GetFileMIMEType(AFilePath);
WriteStringLn(sContentType + ': ' + LType + #13#10); // We need 2 line break here // do not localize
try
FStream.CopyFrom(AStream, 0);
finally
end;
WriteStringLn('');
end;
Однако ни одна из унаследованных закрытых функций класса не доступна.
Я также попытался использовать помощник класса вместо прямого наследования, но опять же закрытые функции не доступны иЯ бы предпочел не использовать взлом RTTI.
Какое лучшее решение / способ обойти загрузку изображения из потока с помощью TNetHTTPClient?Действительно ли мне нужно сохранить поток в файл, чтобы добавить его в данные многоэлементной формы?