Skip to content

Upload

HTTP Upload is used to consume files posted as multipart request.

Basic Usage

import { upload, request, response } from "@dirigible/http";

if (request.getMethod() === "POST") {
    if (upload.isMultipartContent()) {
        let fileItems = upload.parseRequest();
        for (i = 0; i < fileItems.size(); i++) {
            let fileItem = fileItems.get(i);
            if (!fileItem.isFormField()) {
                response.println("File Name: " + fileItem.getName());
                response.println("File Bytes (as text): " + String.fromCharCode.apply(null, fileItem.getBytes()));
            } else {
                response.println("Field Name: " + fileItem.getFieldName());
                response.println("Field Text: " + fileItem.getText());
            }
        }
    } else {
        response.println("The request's content must be 'multipart'");
    }
} else if (request.getMethod() === "GET") {
    response.println("Use POST request.");
}

response.flush();
response.close();
const upload = require('http/upload');
const request = require('http/request');
const response = require('http/response');

if (request.getMethod() === "POST") {
    if (upload.isMultipartContent()) {
        let fileItems = upload.parseRequest();
        for (i=0; i<fileItems.size(); i++) {
            let fileItem = fileItems.get(i);
            if (!fileItem.isFormField()) {
                response.println("File Name: " + fileItem.getName());
                response.println("File Bytes (as text): " + String.fromCharCode.apply(null, fileItem.getBytes()));
            } else {
                response.println("Field Name: " + fileItem.getFieldName());
                response.println("Field Text: " + fileItem.getText());
            }
        }
    } else {
        response.println("The request's content must be 'multipart'");
    }
} else if (request.getMethod() === "GET") {
    response.println("Use POST request.");
}

response.flush();
response.close();

Sample HTML Page

<!DOCTYPE html>
<html>
    <body>
        <form action="/services/js/http-tests/upload/upload.js" method="post" enctype="multipart/form-data">
            <label for="file">Filename:</label>
            <input type="file" name="file" id="file" multiple>
            <br>
            <input type="submit" name="submit" value="Submit">
        </form>
    </body>
</html>

Functions


Function Description Returns
isMultipartContent() Returns true if the HTTP request contains files content and false otherwise boolean
parseRequest() Returns a HttpFileItems object by parsing the HTTP request HttpFileItems

Objects


HttpFileItems

Function Description Returns
get(index) The HttpFileItem object by the index HttpFileItem
size() The size of the list of HttpFileItem objects HttpFileItem
HttpFileItem
Function Description Returns
getContentType() The HttpFileItem's data content type string
getName() The HttpFileItem's name string
getSize() The HttpFileItem's size long
getBytes() Return the HttpFileItem's content as byte array array of byte
getText() Return the HttpFileItem's content as string string
getInputStream() Return the input stream of the HttpFileItem's content streams.InputStream
isFormField() Whether the HttpFileItem represents a form field boolean
getFieldName() The HttpFileItem's field name string
getHeaders() The HttpFileItem's headers array of HttpFileItemHeaders

HttpFileItemHeaders

Function Description Returns
getHeaderNames() The HttpFileItemHeader's names array of strings
getHeader(headerName) The HttpFileItemHeader's value for the given header name string