WEB GET BODY PART
WEB GET BODY PART ( parte ; contenido ; nombre ; tipoMime ; nomArchivo )
Parámetro | Tipo | Descripción | |
---|---|---|---|
parte | Integer | → | Número de parte |
contenido | Blob, Text | ← | Contenido de la parte |
nombre | Text | ← | Nombre de la variable "input" |
tipoMime | Text | ← | Tipo mime del archivo |
nomArchivo | Text | ← | Nombre del archivo enviado |
Descripción
El comando WEB GET BODY PART llamado en el contexto de un proceso web, permite analizar la parte "body" de una petición multi-part.
En el parámetro parte, pase el número de la parte a analizar. Puede obtener el número total de partes con el comando WEB Get body part count.
El parámetro contenido recibe el contenido de la parte. Cuando las partes a recuperar son archivos, debe pasar un parámetro de tipo BLOB. En el caso de variables TEXTO enviadas en un formulario web, puede pasar un parámetro de tipo texto.
El parámetro nombre recupera el nombre de la variable del campo input HTTP.
Los parámetros tipoMime y nomArchivo reciben el tipo Mime y el nombre del archivo original, si lo hay. nomArchivo solo se recibe cuando el archivo se envio como .
tipoMime y nomArchivo son opcionales pero deben pasarse juntos.
Nota: en el contexto de una petición multi-part, el primer de array del comando WEB GET VARIABLES devuelve todas las partes del formulario, en el mismo orden que el comando WEB GET BODY PART. Puede utilizarlo para obtener directamente la posición de una parte de un formulario.
Ejemplo
En este ejemplo, un formulario web permite descargar en el servidor HTTP varias imágenes desde un navegador y mostrarlas en la página. Este es el formulario web:
Este es el código para la parte de la página:
<body>
<form enctype="multipart/form-data" action="/4DACTION/GetFile/" method="post">
Localice las imágenes a cargar: <br>
Imagen 1: <input name="file1" type="file"><br>
Imagen 2: <input name="file2" type="file"><br>
<input type="submit">
</form>
<hr/>
<!--4DSCRIPT/galleryInit-->
<!--4Dloop aFileNames-->
<img src="/photos/<!--4Dvar aFileNames{aFileNames}-->"/>
<!--4Dendloop-->
</body>
Dos métodos 4D son llamados por la página:
- galleryInit al cargar (etiqueta 4DSCRIPT), muestra las imágenes presentes en la carpeta de destino.
- GetFile al enviar los datos (4DACTION URL del formulario multi-part), procesa el envío.
Este es el código del método galleryInit:
var $vDestinationFolder : Text
ARRAY TEXT(aFileNames;0)
var $i : Integer
$vDestinationFolder:=Get 4D folder(HTML Root folder)+"photos"+Folder separator //Carpeta "WebFolder/photos"
DOCUMENT LIST($vDestinationFolder;aFileNames)
Este es el código del método GetFile:
var $vPartName;$vPartMimeType;$vPartFileName;$vDestinationFolder : Text
var $vPartContentBlob : Blob
var $i : Integer
$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("/") // volver a la página