Atozed Forums
erro versao intraweb - Printable Version

+- Atozed Forums (https://www.atozed.com/forums)
+-- Forum: Atozed Software Products (https://www.atozed.com/forums/forum-1.html)
+--- Forum: IntraWeb (https://www.atozed.com/forums/forum-3.html)
+---- Forum: Português (https://www.atozed.com/forums/forum-5.html)
+----- Forum: IntraWeb Dúvidas Gerais (https://www.atozed.com/forums/forum-17.html)
+----- Thread: erro versao intraweb (/thread-1760.html)



erro versao intraweb - Orlando M. Utiamada - 06-26-2020

no iw 14 isso funciona, mas no 15 agora ele nao executa o sendfile.

WebApplication.SendFile( gSC.CacheDir +FFileName+'.tmp', True, 'application/txt', arquivodestino);

  TIWAppForm(WebApplication.ActiveForm).Release;
  TFListaRecibo.Create(WebApplication).Show;

ele passa pela linha do sendfile, executa os proximos e o sendfile nao e executado.

deve ser algum bug do intraweb
existe uma maneira de fazer o dowload e depois ele ir para um determinado formulario. Tentei de varias forma e nao consegui


RE: erro versao intraweb - Alexandre Machado - 07-01-2020

Isto não é um bug. Uma aplicação web não envia a resposta quando vc chama o SendFile() (ou qualquer outro método). Uma aplicaçao web funciona assim:

»» Recebe a requisição
»»» processa a requisição
»» Envia a resposta

onde tem aí "processa requisição" é TUDO que você faz nos seus métodos

SendFile(), Release(), Show() e qualquer outra coisa que vc fizer no seu código é executado ANTES de enviar a resposta.

Ao enviar a resposta é que seu arquivo será enviado. No SendFile() você apenas informa qual arquivo quer enviar

o SendFile() é um caso atípico.

Uma resposta para uma requisição só tem um conteúdo. Usando só HTTP você não pode responder com um arquivo + um form novo para o browser renderizar

então, se vc enviar um arquivo para download, com SendFile(), fazer um outro form seu form ativo não vai mudar o form na tela (pois a requisição continha um arquivo para download, não um HTML com o novo form).