zoukankan      html  css  js  c++  java
  • egg.js上传文件到本地

    'use strict';
    const Service = require('egg').Service;
    const fs = require('fs');
    const path = require('path');
    const sendToWormhole = require('stream-wormhole');
    
    
    class UploadService extends Service {
      async index() {
        const ctx = this.ctx;
        const stream = await ctx.getFileStream();
        const fileName = stream.filename;
        
        let target  = path.join(this.config.baseDir, `app/public/comfiles/${stream.filename}`);
        const result = await new Promise((resolve, reject) => {
            const remoteFileStream = fs.createWriteStream(target);
            stream.pipe(remoteFileStream);
            let errFlag;
            remoteFileStream.on('error', err => {
                errFlag = true;
                sendToWormhole(stream);
                remoteFileStream.destroy();
                reject(err);
            });
            
            remoteFileStream.on('finish', async () => {
                if (errFlag) return;
                resolve({ fileName, name: stream.fields.name });
            });
          });
        return result;  
      }
    }
    
    module.exports = UploadService;

    弄了一个下午,终于弄清楚了,MD.碎觉

  • 相关阅读:
    HDU-4035 Maze
    poj 3744 Scout YYF I
    HDU 4911 Inversion
    HDU-3001 Travelling
    HDU 4539 郑厂长系列故事——排兵布阵
    poj 3311 Hie with the Pie
    poj-1185 炮兵阵地
    位运算
    HDU-1438 钥匙计数之一
    poj 3254 Corn Fields
  • 原文地址:https://www.cnblogs.com/qq735675958/p/9315694.html
Copyright © 2011-2022 走看看