1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import request from '@/request'
- // import { readImg, compressImg } from "./compress"
- import {compressAccurately} from 'image-conversion'
- export default {
- // 上传图片标识 0头像 1身份证 2题库 3指南指引图片 4广告图片 5身份证或学信网图片 6文件excel,word,zip等
- //file: 类似this.$refs.file.files[0]
- upload: function (file, int, data,compressImgStatus = true) {
- return new Promise(async (resolve, reject) => {
- if (typeof file != 'object') {
- resolve(file)
- return;
- }
- var datas = {
- imageStatus: int || 0,
- ...data
- }
- //图片压缩
- if (file.type.indexOf("image") !== -1 && compressImgStatus) {
- file = await compressAccurately(file, 30)
- // const img = await readImg(file)
- // file = await compressImg(img, file.type, 256, 256)
- }
- request.getPolicy(datas).then(res => {
- var ossToken = res.data.resultContent
- // const filename = file.name;
- // const fileExtension = filename.split('.').pop().toLowerCase()
- let formData = new FormData()
- // formData.append('key', ossToken.dir + "." + fileExtension); //存储在oss的文件路径
- formData.append('key', ossToken.dir); //存储在oss的文件路径
- formData.append('OSSAccessKeyId', ossToken.accessid); //accessKeyId
- formData.append('policy', ossToken.policy); //policy
- formData.append('Signature', ossToken.signature); //签名
- formData.append('callback', ossToken.callback); //回调
- formData.append('success_action_status', 200); //成功后返回的操作码
- //如果是base64文件,那么直接把base64字符串转成blob对象进行上传就可以了
- formData.append("file", file);
- request.uploadFile(ossToken.host, formData).then(resp => {
- if (resp.resultContent && Number(resp.resultContent.size) > 0) {
- resolve(ossToken.dir)
- } else {
- reject("上传回调失败")
- }
- }).catch(error => {
- reject(error)
- })
- }).catch(err => {
- reject(err)
- })
- })
- },
- }
|