mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-03-10 22:50:47 +01:00
37
src/posts.js
37
src/posts.js
@@ -12,6 +12,8 @@ var db = require('./database'),
|
||||
meta = require('./meta'),
|
||||
|
||||
async = require('async'),
|
||||
path = require('path'),
|
||||
fs = require('fs'),
|
||||
nconf = require('nconf'),
|
||||
validator = require('validator'),
|
||||
winston = require('winston'),
|
||||
@@ -358,6 +360,10 @@ var db = require('./database'),
|
||||
|
||||
Posts.uploadPostImage = function(image, callback) {
|
||||
|
||||
if(!meta.config.imgurClientID) {
|
||||
return callback('imgurClientID not set', null);
|
||||
}
|
||||
|
||||
if(!image) {
|
||||
return callback('invalid image', null);
|
||||
}
|
||||
@@ -374,6 +380,37 @@ var db = require('./database'),
|
||||
});
|
||||
}
|
||||
|
||||
Posts.uploadPostFile = function(file, callback) {
|
||||
|
||||
if(!meta.config.allowFileUploads) {
|
||||
return callback('File uploads are not allowed');
|
||||
}
|
||||
|
||||
if(!file) {
|
||||
return callback('invalid file');
|
||||
}
|
||||
|
||||
var buffer = new Buffer(file.data, 'base64');
|
||||
|
||||
if(buffer.length > parseInt(meta.config.maximumFileSize, 10) * 1024) {
|
||||
return callback('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) {
|
||||
callback(err.message, null);
|
||||
} else {
|
||||
callback(null, {
|
||||
url: nconf.get('upload_url') + filename,
|
||||
name: file.name
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Posts.getPostsByUid = function(uid, start, end, callback) {
|
||||
user.getPostIds(uid, start, end, function(err, pids) {
|
||||
if(err) {
|
||||
|
||||
Reference in New Issue
Block a user