lrf402788946 4 år sedan
förälder
incheckning
2d25fdf00d
2 ändrade filer med 26 tillägg och 2 borttagningar
  1. 25 2
      app/controller/files.js
  2. 1 0
      package.json

+ 25 - 2
app/controller/files.js

@@ -9,7 +9,7 @@ const sendToWormhole = require('stream-wormhole');
 const assert = require('assert');
 const wxstream = require('stream');
 const ffmpeg = require('fluent-ffmpeg');
-
+const sharp = require('sharp');
 class FilesController extends Controller {
 
   async upload() {
@@ -53,7 +53,7 @@ class FilesController extends Controller {
     }
 
     const filePath = `${rootPath}${sep}${dirs.join(sep)}${sep}`;
-    const fileName = `${name}${ext}`;
+    let fileName = `${name}${ext}`;
     const writeStream = fs.createWriteStream(filePath + fileName);
     try {
       await awaitWriteStream(stream.pipe(writeStream));
@@ -61,7 +61,30 @@ class FilesController extends Controller {
       await sendToWormhole(stream);
       throw err;
     }
+    // 判断是不是作业的图片,是=>统一转换
+    const arr = fileName.split('.');
+    if (arr.length > 0 && filePath.includes('task')) {
+      const suffix = arr.find(
+        f =>
+          f.includes('jpg') ||
+          f.includes('jpeg') ||
+          f.includes('bmp') ||
+          f.includes('gif') ||
+          f.includes('png')
 
+      );
+      if (suffix) {
+        await sharp(`${filePath}${fileName}`)
+          .resize(1000)
+          .toFile(`${filePath}${name}_.jpg`)
+          .then(data => {
+            // 将转换之前的文件删除
+            fs.unlinkSync(`${filePath}${fileName}`);
+            fileName = `${name}_.jpg`;
+            name = `${name}_`;
+          });
+      }
+    }
     return { filePath, fileName, id: name };
   }
 

+ 1 - 0
package.json

@@ -14,6 +14,7 @@
     "moment": "^2.24.0",
     "mongodb": "^3.1.13",
     "naf-core": "0.1.2",
+    "sharp": "^0.26.2",
     "stream-wormhole": "^1.1.0"
   },
   "devDependencies": {