|
|
'use strict';
|
|
|
|
|
|
const request = require('request-promise');
|
|
|
const fs = require('fs');
|
|
|
const _ = require('lodash');
|
|
|
|
|
|
const utils = require('../models/utils');
|
|
|
|
|
|
const uploadImg = (req, res, next) => {
|
|
|
let files = req.files && req.files.file || [];
|
|
|
let errTip = null;
|
|
|
|
|
|
if (!_.isArray(files)) {
|
|
|
files = [files];
|
|
|
}
|
|
|
|
|
|
req.body.files = [];
|
|
|
files.forEach(file => {
|
|
|
|
|
|
let types = file.type.split('/');
|
|
|
|
|
|
if (!types || types[0] !== 'image') {
|
|
|
errTip = '上传文件格式不正确!';
|
|
|
}
|
|
|
|
|
|
if (file.size > 10 * 1024 * 1024) {
|
|
|
errTip = '上传文件尺寸太大!';
|
|
|
}
|
|
|
req.body.files.push(fs.createReadStream(file.path));
|
|
|
req.body.files.push(file.name);
|
|
|
});
|
|
|
|
|
|
if (errTip) {
|
|
|
return res.status(403).send({
|
|
|
message: errTip
|
|
|
});
|
|
|
}
|
|
|
|
|
|
request({
|
|
|
method: 'post',
|
|
|
url: 'http://upload.static.yohobuy.com',
|
|
|
formData: {
|
|
|
fileData: req.body.files,
|
|
|
project: req.body.bucket
|
|
|
},
|
|
|
json: true
|
|
|
}).then(function(result) {
|
|
|
|
|
|
if (result && result.code === 200) {
|
|
|
result.data = result.data || {};
|
|
|
result.data.images = _.map(_.get(result, 'data.imagesList'), (it) => {
|
|
|
return utils.getUploadImgAbsoluteUrl(it, req.body.bucket);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
res.json(result);
|
|
|
}).catch(next);
|
|
|
};
|
|
|
|
|
|
module.exports = {
|
|
|
uploadImg
|
|
|
}; |