Requisição com retorno binário em ExtJS

Olá pessoal, tudo certo?

Vou escrever um post um pouco mais rápido mostrando uma requisição com retorno binário (imagem). Este post veio de uma dúvida do fórum da Sencha, então para compartilhar com todos vou escrever aqui a ideia.

Vamos utilizar um servidor NodeJS bem simples, sem módulos esternos ou coisas do tipo. E vamos utilizar também a CDN da Sencha para pegar os fontes do Ext.

[gist https://gist.github.com/ejulio/6030494 file=”server.js” /]

O código do servidor não tem nada muito além do básico mostrado na página inicial do nodejs. Vale dizer o if para o tipo de retorno, como não estamos tratando nada além de HTML ou imagens, temos então apenas estes dois possíveis tipos.

[gist https://gist.github.com/ejulio/6030494 file=”index.html” /]

Sem mistérios também, apenas como diferença o uso da CDN para inclusão dos arquivos.

[gist https://gist.github.com/ejulio/6030494 file=”request.js” /]

A requisição é simples, bastando apenas informar que o retorno estará no formato binário binary: true e no método de sucesso buscar o valor através da propriedade responseBytes. A criação da imagem parte então para o HTML5 onde criamos um Blob e a partir deste blob geramos uma URL. Com isto pronto é só adicionar a imagem no elemento desejado.

Eu considero retornar uma imagem no formato binário algo complexo demais, visto que a solução simples seria ter a url para imagem e trabalhar a partir desta.

Vale lembrar que a parte do nodejs é opcional, o exemplo roda em qualquer servidor (Apache, IIS).

Para este post era isso. Os fontes podem ser encontrado no github. Abraço.

Anúncios

Um pensamento sobre “Requisição com retorno binário em ExtJS

  1. Boa tarde Julio,

    Demorei para encontrar esse post mas foi em cima do que estava precisando.
    É bacana o fato das requisições ajax poderem ser utilizadas também para o download de arquivos.

    Foi preciso e muito simples!

    Muito obrigado!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s