特易招,招聘小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
675 B

4 months ago
  1. const fsm = wx.getFileSystemManager();
  2. const FILE_BASE_NAME = 'tmp_base64src';
  3. const base64src = function(base64data) {
  4. return new Promise((resolve, reject) => {
  5. const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64data) || [];
  6. if (!format) {
  7. reject(new Error('ERROR_BASE64SRC_PARSE'));
  8. }
  9. const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`;
  10. const buffer = wx.base64ToArrayBuffer(bodyData);
  11. fsm.writeFile({
  12. filePath,
  13. data: buffer,
  14. encoding: 'binary',
  15. success() {
  16. resolve(filePath);
  17. },
  18. fail() {
  19. reject(new Error('ERROR_BASE64SRC_WRITE'));
  20. },
  21. });
  22. });
  23. };
  24. export default {
  25. base64src,
  26. };