uploadFile.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import api from '@/api/api'
  2. export default {
  3. //file: 类似this.$refs.file.files[0]
  4. upload: function (file, int) {
  5. return new Promise((resolve, reject) => {
  6. var datas = {
  7. imageStatus: int
  8. }
  9. api.getPolicy(datas).then(res => {
  10. var ossToken = res.data.resultContent
  11. // const filename = file.name;
  12. // const fileExtension = filename.split('.').pop().toLowerCase()
  13. let formData = new FormData()
  14. // formData.append('key', ossToken.dir + "." + fileExtension); //存储在oss的文件路径
  15. formData.append('key', ossToken.dir); //存储在oss的文件路径
  16. formData.append('OSSAccessKeyId', ossToken.accessid); //accessKeyId
  17. formData.append('policy', ossToken.policy); //policy
  18. formData.append('Signature', ossToken.signature); //签名
  19. formData.append('callback', ossToken.callback); //回调
  20. formData.append('success_action_status', 200); //成功后返回的操作码
  21. //如果是base64文件,那么直接把base64字符串转成blob对象进行上传就可以了
  22. formData.append("file", file);
  23. api.uploadFile(ossToken.host, formData).then(resp => {
  24. resolve(ossToken.dir)
  25. // resolve(ossToken.host + '/' + ossToken.dir)
  26. }).catch(error => {
  27. reject(error)
  28. })
  29. }).catch(err => {
  30. reject(err)
  31. })
  32. })
  33. },
  34. }