Socket
Socket
Sign inDemoInstall

express-fileupload

Package Overview
Dependencies
Maintainers
1
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-fileupload - npm Package Compare versions

Comparing version 0.1.1 to 0.1.2

.eslintignore

5

lib/index.js

@@ -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.

2

package.json
{
"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)

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc