A transferência de arquivos através do Gateway do Mingle pode ser realizada utilizando a biblioteca @totvs/Mingle ou o acesso direto ao servidor através do endpoint conforme a documentação https://mingle.totvs.com.br/api/docs/#api-Gateway-gateway
Para envio e download de arquivos utilizando payload do Mingle Gateway o arquivo deve ser encodado para BASE64.
...
Para o O Mingle permite também o envio de arquivos do client para o backend utilizando formDatano padrão FormData.
Neste exemplo abaixo, recebemos no aplicativo arquivos com qualquer tipo de extensões através do po-upload no HTML e o valor dele (ngModel) é repassado para uma função javascript onde será montado o POST:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<po-upload name="upload" [(ngModel)]="fileUpload"> </po-upload> <ion-button (click)="sendFilesByMingle(fileUpload)">Direto</ion-button> |
Exemplo enviando arquivos do aplicativo utilizando o método post da classe gateway biblioteca gateway da biblioteca @totvs/Mingle:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
public sendFilesByMingle (file: any) { const formData: FormData = new FormData(); formData.append('file', file[0].rawFile); const options = { body: formData }; this.mingleService.gateway.post("api/upload", options).subscribe(res => { console.log("HTTP RESPONSE OK: ", res) }), error => { console.log("HTTP RESPONSE ERROR:", error); } } |
Exemplo de envio de arquivo do aplicativo direto para o endpoint servidor conforme documentação https://mingle.totvs.com.br/api/docs/#api-Gateway-gateway:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
public sendFiles (file: any) { const formData: FormData = new FormData(); formData.append('file', file[0].rawFile); const options = { body: formData }; this.httpService.post("https://mingle.totvs.com.br/api/api/v1/gateway/:setId/back-end-method", options).subscribe(res => { console.log("HTTP RESPONSE OK: ", res) }), error => { console.log("HTTP RESPONSE ERROR:", error); } } |
HTML |
---|
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |