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
Nome | Tipo | Descrição | Obrigatório | Referência |
nTamanho | Numérico | Indica 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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas