post接受请求带进度条方法.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. * @Description: post请求携带
  3. * @Autor: kindring
  4. * @Date: 2022-01-11 14:32:31
  5. * @LastEditors: kindring
  6. * @LastEditTime: 2022-01-11 14:33:04
  7. * @LastDescript:
  8. */
  9. const formidable = require('formidable');
  10. app.post('/up', function(req, res) {
  11. console.log('接受到上传文件');
  12. //上传数据
  13. let form = new formidable.IncomingForm();
  14. var allFile = [];
  15. form.uploadDir = './tmp';
  16. form.type = true;
  17. form.on('progress', function(bytesReceived, bytesExpected) { //在控制台打印文件上传进度
  18. let progressInfo = {
  19. value: bytesReceived, //当前进度
  20. total: bytesExpected //总进度
  21. };
  22. let bar_progress = Math.floor((progressInfo.value / progressInfo.total) * 100);
  23. console.log(`当前进度: ${bar_progress}`);
  24. //res.write(JSON.stringify(progressInfo));
  25. }).on('file', function(filed, file) {
  26. allFile.push([filed, file]); //收集传过来的所有文件
  27. }).on('end', function() {
  28. console.log('文件上传完成 ok');
  29. // res.send('ok');
  30. }).on('error', function(err) {
  31. console.error('上传失败:', err.message);
  32. }).parse(req, function(err, fields, files) {
  33. console.log(fields);
  34. console.log(files);
  35. if (err) {
  36. console.log(`接收失败${err.message}`);
  37. }
  38. })
  39. })