Árvore de páginas

Versões comparadas

Chave

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

...

Portuguese

Pagetitle
HTTPCTLen
HTTPCTLen

Função: HTTPCTLen

Indica o tamanho do pacote HTTP - HyperText Transfer Protocol (Protocolo de Transferência de Hipertexto) que será enviado ao browser, de acordo com alguma requisição realizada ao browser.

HTTPCTLen ( [ nTamanho] ) --> nRetorno

NomeTipoDescriçãoObrigatórioReferência
nTamanhoNuméricoIndica o tamanho do pacote que será enviado ao browser.
    nRetorno(numerico)
  • Retorna o tamanho do pacote que será enviado; caso contrário, o retorno será 0 (zero).
  • Normalmente essa função é utilizada quando é requisitado o download de um arquivo (no caso, o pacote HTTP) e informamos ao navegador o tamanho desse arquivo que será enviado.
  • Para utilizar essa função, é necessário informar ao navegador o tipo de pacote e local que será enviado, através das funções HTTPCTType e HTTPCTDisp.
  • Essa função funciona apenas para links APW - Advanced Protheus Web.
//Neste exemplo, foi criada uma função STATIC getFile(). Para usarmos a função devemos apenas informar o endereço fisico em disco de um aquivo.//Criamos um pequeno buffer, para ir mandando o pacote ao browser e, em seguida, abrimos o arquivo com a função FOpen() e pegamos o tamanho do arquivo com a função FSeek().//Definimos com a função HttpCTType o tipo de arquivo que iremos carregar, no nosso exemplo apenas arquivos texto. Usamos a HttpCTDisp informando ao browser que estamos carregando um attachment, no caso está linha irá fazer aparecer a tela de download de um aquivo do seu Browser padrão e informamos o local do arquivo.//Em seguida, informamos ao browser qual o tamanho desse arquivo, retornado da função FSeek(), e começamos a enviar o arquivo em pequenos pedaços de 1024bytes.      static Function GetFile( cFile )            Local cHtml		:= ''      Local cBuffer	:= space(1024)            Local hArq       Local nTam             If !file(cFile)      	cHtml += '      --------------------------------------------------------------------------------Arquivo '+cFile+' não encontrado.      --------------------------------------------------------------------------------'      ElseIf (hArq := FOpen(cFile)) < 0      	cHtml += '      --------------------------------------------------------------------------------Falha na Abertura do Arquivo '+cFile+' ( FERROR '+str(ferror(),4)+' )      --------------------------------------------------------------------------------'      Else      	      	// Le o arquivo e manda p/ o browse       	nTam := FSeek(hArq, 0, 2)      	FSeek(hArq, 0, 0 )      	      	HttpSetPart(.T.)      	HttpCTType("text/plain")      	HttpCTDisp('attachment; filename="'+cFile+'"')      	HttpCTLen(nTam)      	      	While FRead(hArq, @cBuffer, 1024)>0      		HttpSend(cBuffer)      	EndDo      	FClose(hArq)	      Endif            Return cHtml
Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server