diff --git a/Readme.md b/Readme.md index a5ca104b..e2a80e6e 100644 --- a/Readme.md +++ b/Readme.md @@ -179,7 +179,7 @@ __incomingForm.encoding = 'utf-8'__ The encoding to use for incoming form fields. -__incomingForm.uploadDir = process.env.TMP || '/tmp' || process.cwd()__ +__incomingForm.uploadDir = process.env.TMP || process.env.TMPDIR || process.env.TEMP || '/tmp' || process.cwd()__ The directory for placing file uploads in. You can move them later on using `fs.rename()`. The default directory is picked at module load time depending on diff --git a/lib/incoming_form.js b/lib/incoming_form.js index 060eac29..e2e54f26 100644 --- a/lib/incoming_form.js +++ b/lib/incoming_form.js @@ -10,12 +10,12 @@ var util = require('./util'), EventEmitter = require('events').EventEmitter, Stream = require('stream').Stream; -function IncomingForm(opts) { +function IncomingForm(opts) { if (!(this instanceof IncomingForm)) return new IncomingForm; EventEmitter.call(this); opts=opts||{}; - + this.error = null; this.ended = false; @@ -38,7 +38,13 @@ util.inherits(IncomingForm, EventEmitter); exports.IncomingForm = IncomingForm; IncomingForm.UPLOAD_DIR = (function() { - var dirs = [process.env.TMP, '/tmp', process.cwd()]; + var dirs = [ + process.env.TMP, + process.env.TMPDIR, + process.env.TEMP, + '/tmp', + process.cwd() + ]; for (var i = 0; i < dirs.length; i++) { var dir = dirs[i]; var isDirectory = false; diff --git a/test/legacy/simple/test-incoming-form.js b/test/legacy/simple/test-incoming-form.js index 84de439e..b388c411 100644 --- a/test/legacy/simple/test-incoming-form.js +++ b/test/legacy/simple/test-incoming-form.js @@ -29,7 +29,12 @@ test(function constructor() { assert.strictEqual(form.type, null); assert.strictEqual(form.headers, null); assert.strictEqual(form.keepExtensions, false); - assert.strictEqual(form.uploadDir, '/tmp'); + // Can't assume dir === '/tmp' for portability + // assert.strictEqual(form.uploadDir, '/tmp'); + // Make sure it is a directory instead + assert.doesNotThrow(function () { + assert(fs.statSync(form.uploadDir).isDirectory()); + }); assert.strictEqual(form.encoding, 'utf-8'); assert.strictEqual(form.bytesReceived, null); assert.strictEqual(form.bytesExpected, null);