55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
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);
 | 
						|
  }
 | 
						|
}
 |