form-data
Advanced tools
Comparing version 2.3.3 to 2.4.0
@@ -316,2 +316,28 @@ var CombinedStream = require('combined-stream'); | ||
FormData.prototype.getBuffer = function() { | ||
var dataBuffer = new Buffer.alloc( 0 ); | ||
var boundary = this.getBoundary(); | ||
// Create the form content. Add Line breaks to the end of data. | ||
for (var i = 0, len = this._streams.length; i < len; i++) { | ||
if (typeof this._streams[i] !== 'function') { | ||
// Add content to the buffer. | ||
if(Buffer.isBuffer(this._streams[i])) { | ||
dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]); | ||
}else { | ||
dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]); | ||
} | ||
// Add break after content. | ||
if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) { | ||
dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] ); | ||
} | ||
} | ||
} | ||
// Add the footer and return the Buffer object. | ||
return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] ); | ||
}; | ||
FormData.prototype._generateBoundary = function() { | ||
@@ -318,0 +344,0 @@ // This generates a 50 character boundary similar to those used by Firefox. |
@@ -5,3 +5,3 @@ { | ||
"description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.", | ||
"version": "2.3.3", | ||
"version": "2.4.0", | ||
"repository": { | ||
@@ -8,0 +8,0 @@ "type": "git", |
@@ -9,9 +9,8 @@ # Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data) | ||
[![Linux Build](https://img.shields.io/travis/form-data/form-data/v2.3.3.svg?label=linux:4.x-9.x)](https://travis-ci.org/form-data/form-data) | ||
[![MacOS Build](https://img.shields.io/travis/form-data/form-data/v2.3.3.svg?label=macos:4.x-9.x)](https://travis-ci.org/form-data/form-data) | ||
[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/form-data/v2.3.3.svg?label=windows:4.x-9.x)](https://ci.appveyor.com/project/alexindigo/form-data) | ||
[![Linux Build](https://img.shields.io/travis/form-data/form-data/v2.4.0.svg?label=linux:4.x-12.x)](https://travis-ci.org/form-data/form-data) | ||
[![MacOS Build](https://img.shields.io/travis/form-data/form-data/v2.4.0.svg?label=macos:4.x-12.x)](https://travis-ci.org/form-data/form-data) | ||
[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/form-data/v2.4.0.svg?label=windows:4.x-12.x)](https://ci.appveyor.com/project/alexindigo/form-data) | ||
[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/v2.3.3.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master) | ||
[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/v2.4.0.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master) | ||
[![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data) | ||
[![bitHound Overall Score](https://www.bithound.io/github/form-data/form-data/badges/score.svg)](https://www.bithound.io/github/form-data/form-data) | ||
@@ -228,2 +227,23 @@ ## Install | ||
#### axios | ||
In Node.js you can post a file using [axios](https://github.com/axios/axios): | ||
```javascript | ||
const form = new FormData(); | ||
const stream = fs.createReadStream(PATH_TO_FILE); | ||
form.append('image', stream); | ||
// In Node.js environment you need to set boundary in the header field 'Content-Type' by calling method `getHeaders` | ||
const formHeaders = form.getHeaders(); | ||
axios.post('http://example.com', form, { | ||
headers: { | ||
...formHeaders, | ||
}, | ||
}) | ||
.then(response => response) | ||
.catch(error => error) | ||
``` | ||
## Notes | ||
@@ -230,0 +250,0 @@ |
Sorry, the diff of this file is not supported yet
120904
396
255