FileService.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import path from 'path';
  2. import fs from 'fs-extra';
  3. const uploadUrl = 'http://localhost:3300/static/upload';
  4. const filePath = path.join(__dirname, '../static/upload/');
  5. fs.ensureDir(filePath);
  6. export default class UserService {
  7. async upload(ctx, files, isMultiple) {
  8. let fileReader, fileResource, writeStream;
  9. const fileFunc = function (file) {
  10. console.log(file);
  11. fileReader = fs.createReadStream(file.path);
  12. fileResource = filePath + `/${file.name}`;
  13. console.log(fileResource);
  14. writeStream = fs.createWriteStream(fileResource);
  15. fileReader.pipe(writeStream);
  16. };
  17. const returnFunc = function (flag) {
  18. if (flag) {
  19. let url = '';
  20. for (let i = 0; i < files.length; i++) {
  21. url += uploadUrl + `/${files[i].name},`;
  22. }
  23. url = url.replace(/,$/gi, '');
  24. ctx.body = {
  25. url: url,
  26. code: 0,
  27. message: 'upload Success!',
  28. };
  29. } else {
  30. ctx.body = {
  31. url: uploadUrl + `/${files.name}`,
  32. code: 0,
  33. message: 'upload Success!',
  34. };
  35. }
  36. };
  37. console.log(isMultiple, files.length);
  38. if (isMultiple) {
  39. for (let i = 0; i < files.length; i++) {
  40. const f1 = files[i];
  41. fileFunc(f1);
  42. }
  43. } else {
  44. fileFunc(files);
  45. }
  46. fs.ensureDir(filePath);
  47. returnFunc(isMultiple);
  48. }
  49. }