upload.vue 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <template>
  2. <el-upload :data="dataObj" :multiple="true" :before-upload="beforeUpload" action="https://upload.qbox.me" drag>
  3. <i class="el-icon-upload" />
  4. <div class="el-upload__text">
  5. 将文件拖到此处,或<em>点击上传</em>
  6. </div>
  7. </el-upload>
  8. </template>
  9. <script>
  10. import { getToken } from '@/api/qiniu'
  11. // 获取七牛token 后端通过Access Key,Secret Key,bucket等生成token
  12. // 七牛官方sdk https://developer.qiniu.com/sdk#official-sdk
  13. export default {
  14. data() {
  15. return {
  16. dataObj: { token: '', key: '' },
  17. image_uri: [],
  18. fileList: []
  19. }
  20. },
  21. methods: {
  22. beforeUpload() {
  23. const _self = this
  24. return new Promise((resolve, reject) => {
  25. getToken().then(response => {
  26. const key = response.data.qiniu_key
  27. const token = response.data.qiniu_token
  28. _self._data.dataObj.token = token
  29. _self._data.dataObj.key = key
  30. resolve(true)
  31. }).catch(err => {
  32. console.log(err)
  33. reject(false)
  34. })
  35. })
  36. }
  37. }
  38. }
  39. </script>