diff --git a/lib/filehandler.js b/lib/filehandler.js index e7e227a..00ce1e4 100644 --- a/lib/filehandler.js +++ b/lib/filehandler.js @@ -10,7 +10,7 @@ module.exports = function (middleware, options) { if (redirect) { files = {files: result}; res.redirect(redirect.replace(/%s/, encodeURIComponent(JSON.stringify(files)))); - } else { + } else if (!res.finished){ res.set({ 'Content-Type': (req.headers.accept || '').indexOf('application/json') !== -1 ? 'application/json' diff --git a/lib/fileinfo.js b/lib/fileinfo.js index 873bcd0..e2f5c69 100644 --- a/lib/fileinfo.js +++ b/lib/fileinfo.js @@ -4,11 +4,11 @@ var fs = require('fs'), module.exports = function (options) { var FileInfo = function (file) { - this.name = file.name; - this.originalName = file.name; - this.size = file.size; - this.type = file.type; - this.deleteType = 'DELETE'; + this.name = file.name; + this.originalName = file.name; + this.size = file.size; + this.type = file.type; + this.deleteType = 'DELETE'; }; FileInfo.prototype.validate = function () { @@ -39,4 +39,4 @@ module.exports = function (options) { } return FileInfo; -}; \ No newline at end of file +}; diff --git a/lib/uploadhandler.js b/lib/uploadhandler.js index 070f018..5700d95 100644 --- a/lib/uploadhandler.js +++ b/lib/uploadhandler.js @@ -65,7 +65,7 @@ module.exports = function (options) { UploadHandler.prototype.post = function () { var self = this, - form = new formidable.IncomingForm(), + form = new formidable.IncomingForm({ maxFileSize: 10000 * 1024 * 1024 }), tmpFiles = [], files = [], map = {}, @@ -137,24 +137,49 @@ module.exports = function (options) { } mkdirp(options.uploadDir() + '/', function(err, made) { - fs.rename(file.path, options.uploadDir() + '/' + fileInfo.name, function (err) { + fs.rename(file.path, options.uploadDir() + '/' + fileInfo.name, function (err) { + if (!err) { + generatePreviews(); + finish(); + } else { + var is = fs.createReadStream(file.path); + var os = fs.createWriteStream(options.uploadDir() + '/' + fileInfo.name); + is.on('end', function (err) { if (!err) { + fs.unlink(file.path, function (unlinkErr) { + if (unlinkErr) { + console.error(`Error deleting file: ${file.path}`, unlinkErr); + } else { + console.log(`Deleted file: ${file.path}`); + } generatePreviews(); - finish(); - } else { - var is = fs.createReadStream(file.path); - var os = fs.createWriteStream(options.uploadDir() + '/' + fileInfo.name); - is.on('end', function (err) { - if (!err) { - fs.unlink(file.path); - generatePreviews(); - } - finish(); - }); - is.pipe(os); + }); } - }); + finish(); + }); + is.pipe(os); + } + }); }); + // mkdirp(options.uploadDir() + '/', function(err, made) { + // fs.rename(file.path, options.uploadDir() + '/' + fileInfo.name, function (err) { + // if (!err) { + // generatePreviews(); + // finish(); + // } else { + // var is = fs.createReadStream(file.path); + // var os = fs.createWriteStream(options.uploadDir() + '/' + fileInfo.name); + // is.on('end', function (err) { + // if (!err) { + // fs.unlink(file.path); + // generatePreviews(); + // } + // finish(); + // }); + // is.pipe(os); + // } + // }); + // }); } else finish(); }); diff --git a/package.json b/package.json index dc11e0c..c57e587 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ ], "version": "0.1.7", "dependencies": { - "formidable": ">=1.0.11", + "formidable": "1.2.2", "imagemagick": ">=0.1.2", "lodash": ">= 0.9.2", "mkdirp": ">= 0.3.4",