diff --git a/README.md b/README.md
index 204c7a3..c542275 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-jquery-file-upload-middleware
+jquery-file-upload-middleware-fix
=============================
jQuery-File-Upload Express.js middleware. Based on the server code of [jQuery-File-Upload](https://github.com/blueimp/jQuery-File-Upload)
@@ -6,282 +6,8 @@ jQuery-File-Upload Express.js middleware. Based on the server code of [jQuery-Fi
Installation:
```
- $ npm install jquery-file-upload-middleware
+ $ npm install jquery-file-upload-middleware-fix
```
-Usage:
-
-```javascript
- var express = require("express"),
- upload = require('jquery-file-upload-middleware');
-
- var app = express();
-
- // configure upload middleware
- upload.configure({
- uploadDir: __dirname + '/public/uploads',
- uploadUrl: '/uploads',
- imageVersions: {
- thumbnail: {
- width: 80,
- height: 80
- }
- }
- });
-
- app.configure(function () {
- ...
- app.use('/upload', upload.fileHandler());
- app.use(express.bodyParser());
- ...
- });
-
-```
-
-On the frontend:
-
-```html
-
-
-```
-
-To prevent access to /upload except for post (for security)
-```javascript
-upload.configure({
- uploadDir: __dirname + '/public/uploads/',
- uploadUrl: '/uploads'
-});
-
-/// Redirect all to home except post
-app.get('/upload', function( req, res ){
- res.redirect('/');
-});
-
-app.put('/upload', function( req, res ){
- res.redirect('/');
-});
-
-app.delete('/upload', function( req, res ){
- res.redirect('/');
-});
-
-app.use('/upload', function(req, res, next){
- upload.fileHandler({
- uploadDir: function () {
- return __dirname + '/public/uploads/'
- },
- uploadUrl: function () {
- return '/uploads'
- }
- })(req, res, next);
-});
-```
-
-Overriding global configuration
-
-```javascript
-
- app.use('/upload2', upload.fileHandler({
- uploadDir: __dirname + '/public/uploads2',
- uploadUrl: '/uploads2',
- imageVersions: {
- thumbnail: {
- width: 100,
- height: 100
- }
- }
- }));
-
-```
-
-More sophisticated example - Events
-
-```javascript
- app.use('/upload', upload.fileHandler());
-
- // events
- upload.on('begin', function (fileInfo, req, res) {
- // fileInfo structure is the same as returned to browser
- // {
- // name: '3 (3).jpg',
- // originalName: '3.jpg',
- // size: 79262,
- // type: 'image/jpeg',
- // delete_type: 'DELETE',
- // delete_url: 'http://yourhost/upload/3%20(3).jpg',
- // url: 'http://yourhost/uploads/3%20(3).jpg',
- // thumbnail_url: 'http://youhost/uploads/thumbnail/3%20(3).jpg'
- // }
- });
- upload.on('abort', function (fileInfo, req, res) { ... });
- upload.on('end', function (fileInfo, req, res) { ... });
- upload.on('delete', function (fileInfo, req, res) { ... });
- upload.on('error', function (e, req, res) {
- console.log(e.message);
- });
-```
-
-Dynamic upload directory and url, isolating user files:
-
-```javascript
- upload.configure({
- imageVersions: {
- thumbnail: {
- width: 80,
- height: 80
- }
- }
- });
-
- app.use('/upload', function (req, res, next) {
- // imageVersions are taken from upload.configure()
- upload.fileHandler({
- uploadDir: function () {
- return __dirname + '/public/uploads/' + req.sessionID
- },
- uploadUrl: function () {
- return '/uploads/' + req.sessionID
- }
- })(req, res, next);
- });
-```
-
-Moving uploaded files to different dir:
-
-```javascript
- app.use('/api', function (req, res, next) {
- req.filemanager = upload.fileManager();
- next();
- });
-
- app.use('/api/endpoint', function (req, res, next) {
- // your real /api handler that will actually move the file
- ...
- // req.filemanager.move(filename, path, function (err, result))
- req.filemanager.move('SomeFile.jpg', 'project1', function (err, result) {
- // SomeFile.jpg gets moved from uploadDir/SomeFile.jpg to
- // uploadDir/project1/SomeFile.jpg
- // if path is relative (no leading slash), uploadUrl will
- // be used to generate relevant urls,
- // for absolute paths urls are not generated
- if (!err) {
- // result structure
- // {
- // filename: 'SomeFile.jpg',
- // url: '/uploads/project1/SomeFile.jpg',
- // thumbail_url : '/uploads/project1/thumbnail/SomeFile.jpg'
- // }
- ...
- } else {
- console.log(err);
- }
- });
- });
-```
-
-Moving uploaded files out of uploadDir:
-
-```
- app.use('/api', function (req, res, next) {
- var user = db.find(...);
-
- req.filemanager = upload.fileManager({
- targetDir: __dirname + '/public/u/' + user._id,
- targetUrl: '/u/' + user._id,
- });
-
- // or
- req.filemanager = upload.fileManager({
- targetDir: function () {
- return __dirname + '/public/u/' + user._id
- },
- targetUrl: function () {
- return'/u/' + user._id
- }
- });
- ...
- req.filemanager.move(req.body.filename, 'profile', function (err, result) {
- // file gets moved to __dirname + '/public/u/' + user._id + '/profile'
- if (!err) {
-
- }
- });
- });
-```
-
-Getting uploaded files mapped to their fs locations:
-
-```javascript
- app.use('/list', function (req, res, next) {
- upload.fileManager().getFiles(function (files) {
- // {
- // "00001.MTS": {
- // "path": "/home/.../public/uploads/ekE6k4j9PyrGtcg+SA6a5za3/00001.MTS"
- // },
- // "DSC00030.JPG": {
- // "path": "/home/.../public/uploads/ekE6k4j9PyrGtcg+SA6a5za3/DSC00030.JPG",
- // "thumbnail": "/home/.../public/uploads/ekE6k4j9PyrGtcg+SA6a5za3/thumbnail/DSC00030.JPG"
- // }
- // }
- res.json(files);
- });
- });
-
- // with dynamic upload directories
-
- app.use('/list', function (req, res, next) {
- upload.fileManager({
- uploadDir: function () {
- return __dirname + '/public/uploads/' + req.sessionID
- },
- uploadUrl: function () {
- return '/uploads/' + req.sessionID
- }
- }).getFiles(function (files) {
- res.json(files);
- });
- });
-```
-
-Other options and their default values:
-
-```javascript
-{
- tmpDir: '/tmp',
- uploadDir: __dirname + '/public/uploads',
- uploadUrl: '/uploads',
- targetDir: uploadDir,
- targetUrl: uploadUrl,
- ssl: false,
- hostname: null, // in case your reverse proxy doesn't set Host header
- // eg 'google.com'
- maxPostSize: 11000000000, // 11 GB
- minFileSize: 1,
- maxFileSize: 10000000000, // 10 GB
- acceptFileTypes: /.+/i,
- imageTypes: /\.(gif|jpe?g|png)$/i,
- imageVersions: {
- thumbnail: {
- width: 80,
- height: 80
- }
- },
- imageArgs: ['-auto-orient'],
- accessControl: {
- allowOrigin: '*',
- allowMethods: 'OPTIONS, HEAD, GET, POST, PUT, DELETE'
- }
-}
-```
-
-## Contributors
-
- * [@soomtong](http://github.com/soomtong)
- * [@gsarwohadi](https://github.com/gsarwohadi)
- * [@peecky](https://github.com/peecky)
- * [@tonyspiro](https://github.com/tonyspiro)
- * [@derjust](https://github.com/derjust)
-
-## License
-Copyright (c) 2012 [Aleksandr Guidrevitch](http://aguidrevitch.blogspot.com/)
-Released under the [MIT license](http://www.opensource.org/licenses/MIT).
+This repos only have the fix for issues when running with Node v+7
++ delete : uncaughtException: Callback must be a function
diff --git a/lib/uploadhandler.js b/lib/uploadhandler.js
index 070f018..9b50eb0 100644
--- a/lib/uploadhandler.js
+++ b/lib/uploadhandler.js
@@ -122,7 +122,11 @@ module.exports = function (options) {
_.each(options.imageVersions, function (value, version) {
counter++;
// creating directory recursive
- mkdirp(options.uploadDir() + '/' + version + '/', function (err, made) {
+ // mkdirp(options.uploadDir() + '/' + version + '/', function (err, made) {
+
+ // });
+
+ mkdirp(options.uploadDir() + '/' + version + '/').then(made => {
var opts = options.imageVersions[version];
imageMagick.resize({
width: opts.width,
@@ -132,11 +136,12 @@ module.exports = function (options) {
customArgs: opts.imageArgs || ['-auto-orient']
}, finish);
});
+
});
}
}
- mkdirp(options.uploadDir() + '/', function(err, made) {
+ mkdirp(options.uploadDir() + '/').then(made => {
fs.rename(file.path, options.uploadDir() + '/' + fileInfo.name, function (err) {
if (!err) {
generatePreviews();
@@ -155,6 +160,7 @@ module.exports = function (options) {
}
});
});
+
}
else finish();
});
@@ -189,7 +195,7 @@ module.exports = function (options) {
}
fs.unlink(filepath, function (ex) {
_.each(options.imageVersions, function (value, version) {
- fs.unlink(path.join(options.uploadDir(), version, fileName));
+ fs.unlink(path.join(options.uploadDir(), version, fileName), function(){});
});
self.emit('delete', fileName);
self.callback({success: !ex});
diff --git a/package.json b/package.json
index dc11e0c..eb1384f 100644
--- a/package.json
+++ b/package.json
@@ -1,14 +1,14 @@
{
- "name": "jquery-file-upload-middleware",
- "author": "Aleksandr Guidrevitch