uploadFile.js 1.9 KB

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