Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
node module for uploading local/remote files over multipart.
JavaScript
Branch: master
Pull request Compare This branch is 10 commits behind rfrench:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
LICENSE
README.md
index.js
package.json

README.md

poster

Async node module for uploading local/remote files over multipart.

Install

  $ npm install poster

post(uri, options, callback[err, data])

Options

  • uploadUrl: Upload URL. (required)
  • method: HTTP method type. Defaults to POST.
  • fileId: File ID parameter name of the file. Defaults to Filedata.
  • fields: Optional form parameters.
  • maxFileSize: Maximum file size allowed to be uploaded in bytes. Disabled by default.
  • downloadFileName: If supplied, this will override the parsed file name from the url.
  • maxRedirects: Total # of redirects allowed before giving up downloading the file. Defaults to 5.
  • downloadAgent: Use your own http.Agent for downloading files. Defaults to the global agent.
  • uploadAgent: Use your own http.Agent for uploading files. Defaults to the global agent.
  • agent: If supplied, this value will use the same agent for both the downloadAgent and uploadAgent.

Examples

Stream local file

var poster = require('poster');

var options = {
  uploadUrl: 'http://mysite.com/upload',
  method: 'POST',
  fileId: 'file',
  fields: {
    'myfield': 'value',
    'myfield2': 'value2'
  }
};

poster.post('file.jpg', options, function(err, data) {
  if (!err) {
    console.log(data);
  }
});

Stream remote file

var poster = require('poster');

var options = {
  uploadUrl: 'http://mysite.com/upload',
  method: 'POST',
  fileId: 'file',
  fields: {
    'myfield': 'value',
    'myfield2': 'value2'
  }
};

poster.post('https://www.google.com/logos/2012/addams11-hp.jpg', options, function(err, data) {
  if (!err) {
    console.log(data);
  }
});

BYOA (Bring Your Own Agent)

  $ npm install tunnel
var poster = require('poster');
var tunnel = require('tunnel'); //only works with 0.6.11+
var proxyAgent = new tunnel.httpOverHttp({
  proxy: {
    host: 'myproxy.com',
    port: 80
  }
});

var options = {
  uploadUrl: 'http://mysite.com/upload',
  method: 'POST',
  fileId: 'file',
  fields: {
    'myfield': 'value',
    'myfield2': 'value2'
  },
  downloadAgent: proxyAgent
};

poster.post('https://www.google.com/logos/2012/addams11-hp.jpg', options, function(err, data) {
  if (!err) {
    console.log(data);
  }
});
Something went wrong with that request. Please try again.