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);
 | |
|   }
 | |
| }
 |