From e1632829954f2b1c042098b32cfaef7fbf594641 Mon Sep 17 00:00:00 2001 From: Baris Soner Usakli Date: Sat, 8 Feb 2014 22:34:50 -0500 Subject: [PATCH] added filter:post.uploadFile --- src/posts.js | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/src/posts.js b/src/posts.js index dbd9a7d3ba..f33427fc88 100644 --- a/src/posts.js +++ b/src/posts.js @@ -410,33 +410,38 @@ var db = require('./database'), Posts.uploadPostFile = function(file, callback) { - if(!meta.config.allowFileUploads) { - return callback(new Error('File uploads are not allowed')); - } + if(plugins.hasListeners('filter:post.uploadFile')) { + plugins.fireHook('filter:post.uploadFile', file, callback); + } else { - if(!file || !file.data) { - return callback(new Error('invalid file')); - } - - var buffer = new Buffer(file.data, 'base64'); - - if(buffer.length > parseInt(meta.config.maximumFileSize, 10) * 1024) { - return callback(new Error('File too big')); - } - - var filename = 'upload-' + utils.generateUUID() + path.extname(file.name); - var uploadPath = path.join(nconf.get('base_dir'), nconf.get('upload_path'), filename); - - fs.writeFile(uploadPath, buffer, function (err) { - if(err) { - return callback(err); + if(!meta.config.allowFileUploads) { + return callback(new Error('File uploads are not allowed')); } - callback(null, { - url: nconf.get('upload_url') + filename, - name: file.name + if(!file || !file.data) { + return callback(new Error('invalid file')); + } + + var buffer = new Buffer(file.data, 'base64'); + + if(buffer.length > parseInt(meta.config.maximumFileSize, 10) * 1024) { + return callback(new Error('File too big')); + } + + var filename = 'upload-' + utils.generateUUID() + path.extname(file.name); + var uploadPath = path.join(nconf.get('base_dir'), nconf.get('upload_path'), filename); + + fs.writeFile(uploadPath, buffer, function (err) { + if(err) { + return callback(err); + } + + callback(null, { + url: nconf.get('upload_url') + filename, + name: file.name + }); }); - }); + } } Posts.reIndexPids = function(pids, callback) {