Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uploadCallback (file) {
- // TODO: Integrate dropbox with its SDK
- // TODO: Pass the link to the editor
- console.log('file', file)
- this.getBase64(file, this)
- }
- getBase64 (file, self) {
- const reader = new FileReader()
- reader.readAsDataURL(file)
- reader.onload = function () {
- console.log('reader.result', reader.result)
- self.sendFileToServer(reader.result)
- }
- reader.onerror = function (error) {
- console.log('Error: ', error)
- }
- }
- sendFileToServer (base64File) {
- return new Promise(
- (resolve, reject) => {
- console.log('uploadCallback promise')
- Meteor.call('uploadToDropbox', base64File, function (error, result) {
- console.log('uploadToDropbox callback')
- if (error) {
- console.log('error', error)
- }
- if (result) {
- console.log('result', result)
- }
- })
- }
- )
- }
- import { Meteor } from 'meteor/meteor'
- import Dropbox from 'dropbox'
- // import atob from 'atob'
- import FileAPI from 'file-api'
- const { File } = FileAPI
- console.log('dropbox settings', Meteor.settings.dropbox)
- const dbx = new Dropbox({accessToken: Meteor.settings.dropbox.accessToken})
- Meteor.methods({
- 'uploadToDropbox': function (base64File) {
- console.log('base64File', base64File.slice(5))
- const b64 = base64File.split(',')
- const name = `${Math.random().toString(36).slice(-5)}.png`
- const file = new File({buffer: new Buffer(b64[1]), name, type: 'image/png'})
- console.log('file', file)
- dbx.filesUpload({path: '/' + file.name, contents: file.buffer})
- .then(function (response) {
- console.log(response)
- })
- .catch(function (error) {
- console.error('dropbox error', error)
- })
- return false
- }
- })
- const i = base64File.indexOf('base64,');
- const buffer = Buffer.from(base64File.slice(i + 7), 'base64');
- const file = new File({buffer: buffer, name, type: 'image/png'});
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement