|
|
'use strict';
|
|
|
|
|
|
const request = require('request-promise');
|
|
|
const fs = require('fs');
|
|
|
const _ = require('lodash');
|
|
|
|
|
|
const utils = require('../models/utils');
|
|
|
const yohoApi = global.yoho.API;
|
|
|
|
|
|
const AllowedBucket = {
|
|
|
sns: 'sns',
|
|
|
evidenceImages: 'evidenceImages'
|
|
|
};
|
|
|
|
|
|
const uploadImg = (req, res, next) => {
|
|
|
let files = req.files && req.files.file || [];
|
...
|
...
|
@@ -16,7 +21,6 @@ const uploadImg = (req, res, next) => { |
|
|
|
|
|
req.body.files = [];
|
|
|
files.forEach(file => {
|
|
|
|
|
|
let types = file.type.split('/');
|
|
|
|
|
|
if (!types || types[0] !== 'image') {
|
...
|
...
|
@@ -27,7 +31,6 @@ const uploadImg = (req, res, next) => { |
|
|
errTip = '上传文件尺寸太大!';
|
|
|
}
|
|
|
req.body.files.push(fs.createReadStream(file.path));
|
|
|
req.body.files.push(file.name);
|
|
|
});
|
|
|
|
|
|
if (errTip) {
|
...
|
...
|
@@ -36,21 +39,28 @@ const uploadImg = (req, res, next) => { |
|
|
});
|
|
|
}
|
|
|
|
|
|
request({
|
|
|
method: 'post',
|
|
|
url: 'http://upload.static.yohobuy.com',
|
|
|
formData: {
|
|
|
fileData: req.body.files,
|
|
|
project: req.body.bucket
|
|
|
},
|
|
|
json: true
|
|
|
}).then(function(result) {
|
|
|
const bucket = AllowedBucket[req.body.bucket];
|
|
|
|
|
|
if (!bucket) {
|
|
|
return res.json({
|
|
|
code: 400,
|
|
|
message: '参数错误'
|
|
|
});
|
|
|
}
|
|
|
|
|
|
yohoApi.postFile('', {
|
|
|
bucket: req.body.bucket,
|
|
|
file: req.body.files[0],
|
|
|
uid: req.user.uid.toString(),
|
|
|
method: 'yoho.fileupload'
|
|
|
}).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);
|
|
|
});
|
|
|
const images = [utils.getUploadImgAbsoluteUrl(_.get(result, 'data'), req.body.bucket)];
|
|
|
|
|
|
result.data = {
|
|
|
images,
|
|
|
imagesList: images
|
|
|
};
|
|
|
}
|
|
|
|
|
|
res.json(result);
|
...
|
...
|
|