maltypart

    1.5.0 • Public • Published

    Maltypart NPM Version Bower Version

    Join the chat at https://gitter.im/synacorinc/maltypart

    Maltypart

    Maltypart is a simple multipart request builder.

    It is very similar to HTML5 FormData, but offers a bit more control over fields and serialization.

    View Demo

    Build Status Dependency Status devDependency Status

    Deploy


    Why Maltypart?

    Maltypart is a good fit if your app needs to work with multipart form submissions, but you don't want to couple networking logic to your HTML. It supports a few nice additions that FormData doesn't offer, and can serialize Strings, Files, Elements and more.


    Usage

    Creating a new RequestBody:

    // Pull in the dependency however you wish: AMD, CJS, Node and globals are all supported
    var RequestBody = require('maltypart').RequestBody;
     
    // Create a new multipart body:
    var request = new RequestBody();

    Appending Strings:

    // request is from the first example
     
    request.append({
        // String values get serialized with the default content-type, application/octet-stream:
        some_key : "some value",
     
        // Passing an Object or Array to append() lets you specify multiple fields at once
        second_key : "second value"
    });

    Appending Typed Content:

    request.append('example_image', {
        // Specify an Object with "contentType" and "data" properties to set your own content-type:
        contentType : "image/png",
     
        // Base64-encoded data as a String:
        data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD"
                + "///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDe"
                + "NGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC"
     
        // You can also pass a maltypart.RequestField instead of a POJO.
    });

    Appending a File:

    request.append('some_file', new File(), function() {
        // file added.
    });

    Using with XMLHttpRequest:

    // A standard XHR
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/upload', true);
     
    // Set the request's content-type appropriately:
    xhr.setRequestHeader('Content-Type', request.getContentType());
     
    // Set the multipart-encoded body:
    xhr.send( request.getData() );

    Instantiation

    Via node / browserify:

    var maltypart = require('maltypart');

    Via AMD / requirejs:

    define(['maltypart'], function(maltypart) {
     
    });

    Via globals / script tag:

    <script src="maltypart.js"></script>
    <script>
        maltypart;  // now it's exposed as a "maltypart" global
    </script> 

    Installation

    Installation via Bower: (Recommended)

    bower install maltypart

    Manual Download:

    License

    BSD

    Malt-ey Party

    Install

    npm i maltypart

    DownloadsWeekly Downloads

    138

    Version

    1.5.0

    License

    BSD

    Last publish

    Collaborators

    • developit
    • pl12133
    • billneff79