Authored by htoo

hotfix(home): upload file error

1 phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs 1 phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs
  2 +sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
2 registry=http://npm.yohops.com 3 registry=http://npm.yohops.com
  4 +package-lock=false
1 'use strict'; 1 'use strict';
2 2
3 -const request = require('request-promise');  
4 const fs = require('fs'); 3 const fs = require('fs');
5 const _ = require('lodash'); 4 const _ = require('lodash');
6 5
7 const utils = require('../models/utils'); 6 const utils = require('../models/utils');
  7 +const yohoApi = global.yoho.API;
  8 +
  9 +const AllowedBucket = {
  10 + sns: 'sns',
  11 + evidenceImages: 'evidenceImages'
  12 +};
8 13
9 const uploadImg = (req, res, next) => { 14 const uploadImg = (req, res, next) => {
10 let files = req.files && req.files.file || []; 15 let files = req.files && req.files.file || [];
@@ -16,7 +21,6 @@ const uploadImg = (req, res, next) => { @@ -16,7 +21,6 @@ const uploadImg = (req, res, next) => {
16 21
17 req.body.files = []; 22 req.body.files = [];
18 files.forEach(file => { 23 files.forEach(file => {
19 -  
20 let types = file.type.split('/'); 24 let types = file.type.split('/');
21 25
22 if (!types || types[0] !== 'image') { 26 if (!types || types[0] !== 'image') {
@@ -27,7 +31,6 @@ const uploadImg = (req, res, next) => { @@ -27,7 +31,6 @@ const uploadImg = (req, res, next) => {
27 errTip = '上传文件尺寸太大!'; 31 errTip = '上传文件尺寸太大!';
28 } 32 }
29 req.body.files.push(fs.createReadStream(file.path)); 33 req.body.files.push(fs.createReadStream(file.path));
30 - req.body.files.push(file.name);  
31 }); 34 });
32 35
33 if (errTip) { 36 if (errTip) {
@@ -36,21 +39,28 @@ const uploadImg = (req, res, next) => { @@ -36,21 +39,28 @@ const uploadImg = (req, res, next) => {
36 }); 39 });
37 } 40 }
38 41
39 - request({  
40 - method: 'post',  
41 - url: 'http://upload.static.yohobuy.com',  
42 - formData: {  
43 - fileData: req.body.files,  
44 - project: req.body.bucket  
45 - },  
46 - json: true  
47 - }).then(function(result) { 42 + const bucket = AllowedBucket[req.body.bucket];
48 43
  44 + if (!bucket) {
  45 + return res.json({
  46 + code: 400,
  47 + message: '参数错误'
  48 + });
  49 + }
  50 +
  51 + yohoApi.postFile('', {
  52 + bucket: req.body.bucket,
  53 + file: req.body.files[0],
  54 + uid: req.user.uid.toString(),
  55 + method: 'yoho.fileupload'
  56 + }).then(function(result) {
49 if (result && result.code === 200) { 57 if (result && result.code === 200) {
50 - result.data = result.data || {};  
51 - result.data.images = _.map(_.get(result, 'data.imagesList'), (it) => {  
52 - return utils.getUploadImgAbsoluteUrl(it, req.body.bucket);  
53 - }); 58 + const images = [utils.getUploadImgAbsoluteUrl(_.get(result, 'data'), req.body.bucket)];
  59 +
  60 + result.data = {
  61 + images,
  62 + imagesList: images
  63 + };
54 } 64 }
55 65
56 res.json(result); 66 res.json(result);
@@ -88,7 +88,7 @@ module.exports = { @@ -88,7 +88,7 @@ module.exports = {
88 infoFile: { 88 infoFile: {
89 name: 'info', 89 name: 'info',
90 level: 'info', 90 level: 'info',
91 - filename: '/Data/logs/yohobuy-node/info/info.log', 91 + filename: './Data/logs/yohobuy-node/info/info.log',
92 maxFiles: 1, 92 maxFiles: 1,
93 tailable: true, 93 tailable: true,
94 maxsize: Math.pow(1024, 3), 94 maxsize: Math.pow(1024, 3),
@@ -100,7 +100,7 @@ module.exports = { @@ -100,7 +100,7 @@ module.exports = {
100 errorFile: { 100 errorFile: {
101 name: 'error', 101 name: 'error',
102 level: 'error', 102 level: 'error',
103 - filename: '/Data/logs/yohobuy-node/error/error.log', 103 + filename: './Data/logs/yohobuy-node/error/error.log',
104 maxFiles: 1, 104 maxFiles: 1,
105 tailable: true, 105 tailable: true,
106 maxsize: Math.pow(1024, 3), 106 maxsize: Math.pow(1024, 3),
@@ -57,10 +57,10 @@ @@ -57,10 +57,10 @@
57 "sitemap": "^1.12.1", 57 "sitemap": "^1.12.1",
58 "urlencode": "^1.1.0", 58 "urlencode": "^1.1.0",
59 "uuid": "^2.0.2", 59 "uuid": "^2.0.2",
  60 + "yo-cli": "=2.1.13",
60 "yoho-express-session": "^2.0.0", 61 "yoho-express-session": "^2.0.0",
61 - "yoho-node-lib": "=0.6.40",  
62 - "yoho-zookeeper": "^1.0.10",  
63 - "yo-cli": "=1.0.7" 62 + "yoho-node-lib": "^0.6.46",
  63 + "yoho-zookeeper": "^1.0.10"
64 }, 64 },
65 "devDependencies": { 65 "devDependencies": {
66 "autoprefixer": "^8.3.0", 66 "autoprefixer": "^8.3.0",
@@ -103,8 +103,6 @@ @@ -103,8 +103,6 @@
103 "stylelint": "^9.2.0", 103 "stylelint": "^9.2.0",
104 "stylelint-config-yoho": "1.3.0", 104 "stylelint-config-yoho": "1.3.0",
105 "stylelint-formatter-table": "^1.0.3", 105 "stylelint-formatter-table": "^1.0.3",
106 - "webpack": "^4.6.0",  
107 - "webpack-cli": "^2.0.15",  
108 "webpack-dev-server": "^3.1.4", 106 "webpack-dev-server": "^3.1.4",
109 "yoho-eventproxy": "^0.3.6", 107 "yoho-eventproxy": "^0.3.6",
110 "yoho-handlebars": "^4.0.6", 108 "yoho-handlebars": "^4.0.6",
  1 +@import "../variables";
1 @import "../channel/index"; 2 @import "../channel/index";
2 @import "activity"; 3 @import "activity";
1 @charset "utf-8"; 1 @charset "utf-8";
2 2
3 /* 公共 */ 3 /* 公共 */
  4 +@import "variables";
4 @import "common/index"; 5 @import "common/index";
5 @import "plugin/index"; 6 @import "plugin/index";
6 @import "common/dialog"; 7 @import "common/dialog";
7 @import "pager"; 8 @import "pager";
8 @import "path-nav"; 9 @import "path-nav";
9 @import "share"; 10 @import "share";
10 -@import "variables";  
11 -  
1 -@import "../channel/index" 1 +@import "../variables";
  2 +@import "../channel/index";
  1 +@import "../variables";
1 @import "order-ensure"; 2 @import "order-ensure";
2 @import "easypay"; 3 @import "easypay";
3 @import "cart"; 4 @import "cart";
4 @import "goods-detail"; 5 @import "goods-detail";
5 @import "cart-togetherGoods"; 6 @import "cart-togetherGoods";
6 -@import "../variables";  
  1 +@import "../variables";
1 @import "base"; 2 @import "base";
2 @import "index-pliffy"; 3 @import "index-pliffy";
3 @import "min-index"; 4 @import "min-index";
4 @import "brand"; 5 @import "brand";
5 @import "coupon"; 6 @import "coupon";
6 -@import "../variables";  
  1 +@import "../variables";
1 @import "base"; 2 @import "base";
2 @import "default"; 3 @import "default";
3 @import "order-block"; 4 @import "order-block";
@@ -19,7 +20,6 @@ @@ -19,7 +20,6 @@
19 @import "coupons"; 20 @import "coupons";
20 @import "favorite"; 21 @import "favorite";
21 @import "user-info"; 22 @import "user-info";
22 -@import "../variables";  
23 @import "returns-detail"; 23 @import "returns-detail";
24 @import "returns-save"; 24 @import "returns-save";
25 @import "me-gift"; 25 @import "me-gift";
  1 +@import "../variables";
1 @import "base"; 2 @import "base";
2 @import "login"; 3 @import "login";
3 @import "register"; 4 @import "register";
@@ -6,4 +7,3 @@ @@ -6,4 +7,3 @@
6 @import "relate"; 7 @import "relate";
7 @import "third"; 8 @import "third";
8 @import "_bind-tip.css"; 9 @import "_bind-tip.css";
9 -@import "../variables";  
  1 +@import "../variables";
1 @import "search"; 2 @import "search";
2 @import "filter-box"; 3 @import "filter-box";
3 @import "sort-pager"; 4 @import "sort-pager";
@@ -15,7 +16,6 @@ @@ -15,7 +16,6 @@
15 @import "top-coupon"; 16 @import "top-coupon";
16 @import "new-arrive"; 17 @import "new-arrive";
17 @import "good-slide"; 18 @import "good-slide";
18 -@import "../variables";  
19 @import "seo/index"; 19 @import "seo/index";
20 20
21 .product-page { 21 .product-page {
This diff could not be displayed because it is too large.