Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Para envio e download de arquivos utilizando o Mingle  payload do Mingle Gateway o arquivo deve ser encodado para BASE64.

Dessa forma é possível enviar arquivos PDF, ZIP, XLS, etc...

Para converter o arquivo para BASE64  e enviá-lo como resposta a uma solicitação GET para download, pode-se utilizar o exemplo em NodeJS abaixo:

Bloco de código
languagejs
firstline1
titleexemploEncode.js
linenumberstrue
 let options = { 
    root: path.join(__dirname),
 }; 

 let buff = fs.readFileSync('arquivo.tar.xz');
 let base64data = buff.toString('base64');

 res.setHeader("content-type", "application/octet-stream");
 res.setHeader('content-disposition', 'attachment; filename=arquivo.tar.xz');

 res.end(base64data, options);

...

Segue abaixo links das documentações de Encode e Decode do Protheus (ADVPL):

Encode64

Decode64


FormData

Para envio e download de arquivos utilizando a interface formData do Mingle Gateway

Essa interface utiliza o mesmo formato que um form html utilizaria se o tipo de codificação estivesse configurado como "multipart/form-data".

Neste exemplo, recebemos arquivos com qualquer tipo de extensões através do upload no html

Bloco de código
languagexml
firstline1
titleupload_de_arquivos.html
linenumberstrue
<po-upload name="upload" [(ngModel)]="fileUpload"> </po-upload>

<ion-button (click)="sendFilesByMingle(fileUpload)">Direto</ion-button>

E enviamos com o MingleService no método sendFilesByMingle(fileUpload):

Bloco de código
languagejs
firstline1
titlesendFilesByMingle
linenumberstrue
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);
    }

  }

Envie o formData através do body usando a classe mingleService.gateway.

Dessa forma os seus arquivos serão enviados para o seu host.


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>