express-fileupload
Advanced tools
Comparing version 0.1.1 to 0.1.2
@@ -70,7 +70,7 @@ 'use strict'; | ||
busboy.on('file', function(fieldname, file, filename, encoding, mime) { | ||
let buf = new Buffer(0); | ||
const buffers = []; | ||
let safeFileNameRegex = /[^\w-]/g; | ||
file.on('data', function(data) { | ||
buf = Buffer.concat([buf, data]); | ||
buffers.push(data); | ||
@@ -85,2 +85,3 @@ if (options.debug) | ||
const buf = Buffer.concat(buffers); | ||
// see: https://github.com/richardgirges/express-fileupload/issues/14 | ||
@@ -87,0 +88,0 @@ // firefox uploads empty file in case of cache miss when f5ing page. |
{ | ||
"name": "express-fileupload", | ||
"version": "0.1.1", | ||
"version": "0.1.2", | ||
"author": "Richard Girges <richardgirges@gmail.com>", | ||
@@ -5,0 +5,0 @@ "description": "Simple express file upload middleware that wraps around Busboy", |
@@ -18,2 +18,8 @@ 'use strict'; | ||
let mockUser = { | ||
firstName: 'Joe', | ||
lastName: 'Schmo', | ||
email: 'joe@mailinator.com' | ||
}; | ||
describe('Test Directory Cleaning Method', function() { | ||
@@ -155,1 +161,57 @@ it('emptied "uploads" directory', function(done) { | ||
}); | ||
describe('Test Upload With Fields', function() { | ||
for (let i = 0; i < mockFiles.length; i++) { | ||
let fileName = mockFiles[i]; | ||
it(`upload ${fileName} and submit fields at the same time with POST`, function(done) { | ||
let filePath = path.join(fileDir, fileName); | ||
let uploadedFilePath = path.join(uploadDir, fileName); | ||
clearUploadsDir(); | ||
request(app) | ||
.post('/upload/single/withfields') | ||
.attach('testFile', filePath) | ||
.field('firstName', mockUser.firstName) | ||
.field('lastName', mockUser.lastName) | ||
.field('email', mockUser.email) | ||
.expect(200, { | ||
firstName: mockUser.firstName, | ||
lastName: mockUser.lastName, | ||
email: mockUser.email | ||
}, | ||
function(err, res) { | ||
if (err) | ||
return done(err); | ||
fs.stat(uploadedFilePath, done); | ||
}); | ||
}); | ||
it(`upload ${fileName} and submit fields at the same time with PUT`, function(done) { | ||
let filePath = path.join(fileDir, fileName); | ||
let uploadedFilePath = path.join(uploadDir, fileName); | ||
clearUploadsDir(); | ||
request(app) | ||
.put('/upload/single/withfields') | ||
.attach('testFile', filePath) | ||
.field('firstName', mockUser.firstName) | ||
.field('lastName', mockUser.lastName) | ||
.field('email', mockUser.email) | ||
.expect(200, { | ||
firstName: mockUser.firstName, | ||
lastName: mockUser.lastName, | ||
email: mockUser.email | ||
}, | ||
function(err, res) { | ||
if (err) | ||
return done(err); | ||
fs.stat(uploadedFilePath, done); | ||
}); | ||
}); | ||
} | ||
}); |
@@ -38,2 +38,33 @@ 'use strict'; | ||
app.all('/upload/single/withfields', function(req, res) { | ||
if (!req.files) | ||
return res.status(400).send('No files were uploaded.'); | ||
if (!req.body) | ||
return res.status(400).send('No request body found'); | ||
if (!req.body.firstName || !req.body.firstName.trim()) | ||
return res.status(400).send('Invalid first name'); | ||
if (!req.body.lastName || !req.body.lastName.trim()) | ||
return res.status(400).send('Invalid last name'); | ||
if (!req.body.email || !req.body.email.trim()) | ||
return res.status(400).send('Invalid email'); | ||
let testFile = req.files.testFile; | ||
let uploadPath = path.join(uploadDir, testFile.name); | ||
testFile.mv(uploadPath, function(err) { | ||
if (err) | ||
return res.status(500).send(err); | ||
res.json({ | ||
firstName: req.body.firstName, | ||
lastName: req.body.lastName, | ||
email: req.body.email | ||
}); | ||
}); | ||
}); | ||
app.all('/upload/multiple', function(req, res) { | ||
@@ -40,0 +71,0 @@ if (!req.files) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
778627
18
539