Menu

Commit [r1805]  Maximize  Restore  History

RECEBER O UPLOAD DE MAIS DE UM ARQUIVO DE OUTROS CLIENTS ATRAVÉS DE MULTPART/FORM-DATA.

AJUSTE PARA LEITURA DE CONTEÚDO DO BODY NO FORMATO RAW E BIN.

[+]uDWJSONObject.pas - Novas propriedades na classe TJSONParam para identificar os arquivos recebidos:
Property ParamFileName : String;
Property ParamContentType : String;
-ParamFileName diz o nome do arquivo recebido por upload;
-ParamContentType diz o MIMEType do arquivo, dessa forma pode se decidir como salvar o arquivo;

[+]uSysTypes.pas - Implementação de novas Class Function para realizar o parse do conteúdo recebido no Body.
Class Function ParseBodyRawToDWParam(const BodyRaw: String; vEncoding: TEncodeSelect; var ResultPR: TDWParams): Boolean;
Class Function ParseBodyBinToDWParam(const BodyBin: String; vEncoding: TEncodeSelect; var ResultPR: TDWParams): Boolean;

[*]uRESTDWBase.pas - Correção na classe TRESTServicePooler.
+Receber o Upload de mais de um arquivo de outros Clients através de multpart/form-data.
Os arquivos agora poderão ser recuperados através dos DWParams identificados com ParamName='dwfilename'. Duas nova propriedades
foram acrescentadas em DWParams, são elas:
-(Nova Property)ParamFileName (Nome do arquivo recebido por upload);
-(Nova Property)ParamContentType (MIMEType do arquivo, ex.: application/pdf, image/jpg, application/xml, etc...)

+Ajuste para leitura de conteúdo do Body no formato Raw e Bin.
O conteúdo recebido no Body deve ser lido através dos DWParams e são identificado com ParamName='UNDEFINED', preferencialmente
caso o usuário deseje, ele pode indetificar o Parâmetro com outro nome, para tanto basta enviar na requisição um parâmetro do tipo
"dwParamNameBody", conforme exemplo abaixo:

curl -X POST \
http://localhost:8082/Uploads/InputUpload?dwParamNameBody=Conteudo \

dessa forma o parâmetro será identificado no servidor com ParamName='Conteudo' e não mais como ParaName='UNDEFINED'.
Obs.: dwParamNameBody, poderá ser enviado na requisição tanto na URL quanto no Header que o server RDW irá indetificá-lo.

Para POST com Body no formato BIN, o parâmetro do tipo "dwFileNameBody" também poderá ser enviado via URL ou Header da requisição
contendo o nome do arquivo binário enviado no corpo da requisição, conforme exemplo:

curl -X POST \
http://localhost:8082/Uploads/InputUpload?dwParamNameBody=Conteudo&dwFileNameBody=MeuArquivo.pdf \

dessa forma o nome do arquivo e seu tipo podem ser lidos em DWParams na nova propriedade ParamFileName e ParamContentType respectivamente.

tiagoistuque 2019-01-07

changed /trunk/CORE/Source/libs/SysTypes.pas
changed /trunk/CORE/Source/libs/uDWJSONObject.pas
changed /trunk/CORE/Source/uRESTDWBase.pas
/trunk/CORE/Source/libs/SysTypes.pas Diff Switch to side-by-side view
Loading...
/trunk/CORE/Source/libs/uDWJSONObject.pas Diff Switch to side-by-side view
Loading...
/trunk/CORE/Source/uRESTDWBase.pas Diff Switch to side-by-side view
Loading...
MongoDB Logo MongoDB