import path from 'path' ; import fs from 'fs-extra' ; const uploadUrl = 'http://localhost:3300/static/upload' ; const filePath = path . join ( __dirname , '../static/upload/' ) ; fs . ensureDir ( filePath ) ; export default class UserService { async upload ( ctx , files , isMultiple ) { let fileReader , fileResource , writeStream ; const fileFunc = function ( file ) { fileReader = fs . createReadStream ( file . path ) ; fileResource = filePath + `/${ file . name }` ; console . log ( fileResource ) ; writeStream = fs . createWriteStream ( fileResource ) ; fileReader . pipe ( writeStream ) ; } ; const returnFunc = function ( flag ) { if ( flag ) { let url = '' ; for ( let i = 0 ; i < files . length ; i ++ ) { url += uploadUrl + `/${ files [ i ] . name },` ; } url = url . replace ( /,$/gi , '' ) ; ctx . body = { url : url , code : 0 , message : 'upload Success!' , } ; } else { ctx . body = { url : uploadUrl + `/${ files . name }` , code : 0 , message : 'upload Success!' , } ; } } ; console . log ( isMultiple , files . length ) ; if ( isMultiple ) { for ( let i = 0 ; i < files . length ; i ++ ) { const f1 = files [ i ] ; fileFunc ( f1 ) ; } } else { fileFunc ( files ) ; } fs . ensureDir ( filePath ) ; returnFunc ( isMultiple ) ; } }