Page tree
Skip to end of metadata
Go to start of metadata

Função: HTTPCTType

Indica o tipo de pacote HTTP - HyperText Transfer Protocol (Protocolo de Transferência de Hipertexto),  que será retornado para uma determinada requisição HTTP.

HTTPCTType ( [ cType] ) --> Nil

NomeTipoDescriçãoObrigatórioReferência
cTypeCaracterIndica qual o tipo de pacote HTTP que será enviado pela requisição.
Nil (Nulo)
  • Os tipos de pacotes podem ser especificados no parâmetro <cType> opcional da função, informando um tipo diferente do padrão, que podem ser:

Pacotes de texto Pacotes de imagens Pacotes binários

'text/html'
Indica um conteúdo HTML texto.

'image/gif'
Indica uma imagem do tipo .gif

'application /xbitmap'
Indica um pacote do tipo bitmap.

'text/text'
Indica um pacote qualquer do tipo texto.

'image/jpeg'
Indica uma imagem do tipo .jpeg

'application/zip'
Indica um pacote compactado pelo executável zip. 

'application/octet-stream'
Indica como retorno um pacote qualquer mas binário.

  • 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

  • No labels