uploadFile.js 1.7 KB

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