tools.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * Created by zhengguorong on 2016/11/30.
  3. */
  4. var fs = require('fs')
  5. var mkdirp = require('mkdirp')
  6. var path = require('path')
  7. var ejs = require('ejs')
  8. var path = require('path');
  9. const base64ToImg = (imgData, filePath) => {
  10. var base64Data = imgData.replace(/^data:image\/\w+;base64,/, "")
  11. var dataBuffer = new Buffer(base64Data, 'base64')
  12. var fileDir = path.dirname(filePath)
  13. mkdirp(fileDir, (err) => {
  14. fs.writeFile(filePath, dataBuffer, (err) => {
  15. })
  16. })
  17. }
  18. /**
  19. * 获取上传文件后缀
  20. * @param {*} imgData
  21. */
  22. const getFileExt = (imgData) => {
  23. if (imgData.indexOf('image/gif') > -1) {
  24. return '.gif'
  25. } else {
  26. return '.png'
  27. }
  28. }
  29. const renderFile = (filePath, data, successCallback) => {
  30. var rootPath = path.join(__dirname, '../views/')
  31. fs.readFile(rootPath + filePath, { flag: 'r+', encoding: 'utf8' }, function (err, result) {
  32. if (err) {
  33. console.log(err)
  34. return;
  35. }
  36. let html = ejs.render(result, data)
  37. successCallback(html)
  38. });
  39. }
  40. const saveFile = (filePath, data, successCallback) => {
  41. var rootPath = path.join(__dirname, '../public/pages/')
  42. mkdirp(rootPath, (err) => {
  43. fs.writeFile(rootPath + filePath, data, function (err) {
  44. if (err) {
  45. console.error(err);
  46. } else {
  47. successCallback && successCallback()
  48. }
  49. });
  50. })
  51. }
  52. const mkdirs = function(dirpath) {
  53. if (!fs.existsSync(path.dirname(dirpath))) {
  54. mkdirs(path.dirname(dirpath));
  55. }
  56. fs.mkdirSync(dirpath);
  57. }
  58. module.exports = {
  59. base64ToImg,
  60. renderFile,
  61. saveFile,
  62. getFileExt,
  63. mkdirs
  64. }