1.5.0 • Published 8 years ago

maltypart v1.5.0

Weekly downloads
478
License
BSD
Repository
github
Last release
8 years ago

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

1.5.0

8 years ago

1.4.0

9 years ago

1.3.0

9 years ago

1.2.3

9 years ago

1.2.2

9 years ago

1.2.1

9 years ago

1.2.0

9 years ago

1.1.2

9 years ago

1.1.1

9 years ago