Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. uploadCallback (file) {
  2. // TODO: Integrate dropbox with its SDK
  3. // TODO: Pass the link to the editor
  4. console.log('file', file)
  5. this.getBase64(file, this)
  6. }
  7. getBase64 (file, self) {
  8. const reader = new FileReader()
  9. reader.readAsDataURL(file)
  10. reader.onload = function () {
  11. console.log('reader.result', reader.result)
  12. self.sendFileToServer(reader.result)
  13. }
  14. reader.onerror = function (error) {
  15. console.log('Error: ', error)
  16. }
  17. }
  18. sendFileToServer (base64File) {
  19. return new Promise(
  20. (resolve, reject) => {
  21. console.log('uploadCallback promise')
  22. Meteor.call('uploadToDropbox', base64File, function (error, result) {
  23. console.log('uploadToDropbox callback')
  24. if (error) {
  25. console.log('error', error)
  26. }
  27. if (result) {
  28. console.log('result', result)
  29. }
  30. })
  31. }
  32. )
  33. }
  34.  
  35. import { Meteor } from 'meteor/meteor'
  36. import Dropbox from 'dropbox'
  37. // import atob from 'atob'
  38. import FileAPI from 'file-api'
  39.  
  40. const { File } = FileAPI
  41.  
  42. console.log('dropbox settings', Meteor.settings.dropbox)
  43. const dbx = new Dropbox({accessToken: Meteor.settings.dropbox.accessToken})
  44.  
  45. Meteor.methods({
  46. 'uploadToDropbox': function (base64File) {
  47. console.log('base64File', base64File.slice(5))
  48. const b64 = base64File.split(',')
  49. const name = `${Math.random().toString(36).slice(-5)}.png`
  50. const file = new File({buffer: new Buffer(b64[1]), name, type: 'image/png'})
  51. console.log('file', file)
  52. dbx.filesUpload({path: '/' + file.name, contents: file.buffer})
  53. .then(function (response) {
  54. console.log(response)
  55. })
  56. .catch(function (error) {
  57. console.error('dropbox error', error)
  58. })
  59. return false
  60. }
  61. })
  62.  
  63. const i = base64File.indexOf('base64,');
  64. const buffer = Buffer.from(base64File.slice(i + 7), 'base64');
  65. const file = new File({buffer: buffer, name, type: 'image/png'});
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement