4D v16.3

WEB GET BODY PART

Página Inicial

 
4D v16.3
WEB GET BODY PART

WEB GET BODY PART 


 

WEB GET BODY PART ( parte ; conteudo ; nome ; tipoMime ; nomArquivo ) 
Parâmetro Tipo   Descrição
parte  Inteiro longo in Número de parte
conteudo  BLOB, Texto in Conteúdo de parte
nome  Texto in Nome da variável "input"
tipoMime  Texto in Tipo mime do arquivo
nomArquivo  Texto in Nome do arquivo enviado

O comando WEB GET BODY PART chamado no contexto de um processo web, permite analisar a parte "body" de uma petição multi-part.

No parâmetro parte, passe o número da parte a analisar. Podes obter o número total de partes com comando WEB Get body part count.

No parâmetro conteudo recebe o conteúdo da parte. Quando as partes a recuperar são arquivos, deve passar um parâmetro de tipo BLOB. No caso de variáveis TEXTO enviadas em um formulário web, pode passar um parâmetro de tipo texto.

O parâmetro nome recupera o nome da variável do campo input HTTP.

Os parâmetros tipoMime e nomArquivo recebem o tipo Mime e o nome do arquivo original, se houver. nomArquivo só é recebido quando o arquivo se enviou como <input type="file">.
tipoMime e nomArquivo são opcionais mas devem ser passados juntos.

Nota: No contexto de uma petição multi-part, o primeiro de array do comando WEB GET VARIABLES devolve todas as partes do formulário, na mesma ordem que o comando WEB GET BODY PART. Pode utilizar-lo para obter diretamente a posição de uma parte de um formulário.

Exemplo  

Neste exemplo, um formulário web permite descarregar no servidor HTTP varias imagens desde um navegador e mostrar-las na página. Este é o formulário web:

Este é o código para a parte <body> da página:

<body>
        <form enctype="multipart/form-data" action="/4DACTION/GetFile/" method="post">
            Localize as imagens a carregar: <br>
            Imagem 1: <input name="file1" type="file"><br>
            Imagem 2: <input name="file2" type="file"><br>
            <input type="submit">                   
        </form>    
        <hr/>
    <!--4DSCRIPT/galleryInit-->
    <!--4Dloop aFileNames-->
        <img src="/photos/<!--4Dvar aFileNames{aFileNames}-->"/>
    <!--4Dendloop-->
</body>

Dois métodos 4D são chamados pela página:

  • galleryInit ao carregar (etiqueta 4DSCRIPT), mostra as imagens presentes na pasta de destino.
  • GetFile ao enviar os dados (4DACTION URL do formulário multi-part), processa o envio.

Este é o código do método galleryInit:

 C_TEXT($vDestinationFolder)
 ARRAY TEXT(aFileNames;0)
 C_LONGINT($i)
 $vDestinationFolder:=Get 4D folder(HTML Root folder)+"photos"+Folder separator //Carpeta "WebFolder/photos"
 DOCUMENT LIST($vDestinationFolder;aFileNames)

Este é o código do método GetFile:

 C_TEXT($vPartName;$vPartMimeType;$vPartFileName;$vDestinationFolder)
 C_BLOB($vPartContentBlob)
 C_LONGINT($i)
 $vDestinationFolder:=Get 4D folder(HTML Root folder)+"photos"+Folder separator
 For($i;1;WEB Get body part count//para cada parte
    WEB GET BODY PART($i;$vPartContentBlob;$vPartName;$vPartMimeType;$vPartFileName)
    If($vPartFileName#"")
       BLOB TO DOCUMENT($vDestinationFolder+$vPartFileName;$vPartContentBlob)
    End if
 End for
 WEB SEND HTTP REDIRECT("/") // voltar a página



Ver também 

Binding 4D objects with HTML objects
WEB Get body part count
WEB GET HTTP BODY
WEB GET VARIABLES

 
PROPRIEDADES 

Produto: 4D
Tema: Web Server
Número 1212

This command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v13

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)