upload.js 1.82 KB
var request = require('request');
var fs = require('fs');
var ipaddr = require('ipaddr.js');
var domain = require('../../config/common.js').domain;
//var domain = 'http://172.16.6.227:8083/yohobuy-platform-web'; //马力
//var domain = 'http://192.168.102.202:8088/platform';

var env = process.env.NODE_ENV || 'development';

exports.uploadFile = function(req, res) {
    if(req.session.user) {
        appendAdminInfo(req,req.session.user.auth);
    }
    if (req.is("multipart/form-data")) {
        req.body.file = fs.createReadStream(req.files[req.body.filename].path);
        if (req.body.__type == "batch-import") {
            request.post({
                url: domain + '/batch/import',
                formData: req.body
            }, function optionalCallback(err, httpResponse, body) {
                var json = JSON.parse(body);
                json.status = true;
                res.json(json);
            });
        } else {
            request.post({
                url: domain + '/fileupload/upload',
                formData: req.body
            }, function optionalCallback(err, httpResponse, body) {
                var json = JSON.parse(body);
                json.status = true;
                res.json(json);
            });
        }
    } else {
        res.json({
            code: "500",
            message: "请求类型错误"
        });
    }
}
/**
 * 附加管理员的信息
 * @param  {Request} req  请求对象
 * @param  {Number} uid  用户ID
 * @param  {String} name 用户名
 * @return {Object}      用户信息对象
 */
function appendAdminInfo(req,auth) {
    var ipObject = ipaddr.process(req.ip).octets
    var ip = ipObject?ipObject.join('.'):req.ip;
    req._yoheaders = {
        'x-user-id':auth.pid,
        'x-user-name':auth.account,
        'x-site-type':WEBSITE,
        'x-client-ip':ip
    };
}