- 因为没有服务器,刚好想练习一下umi和ant-design-pro,又想到了unicloud云开发,于是又浅搞了一下,这次搞的云对象
- 不会写文章直接简略贴个代码,大佬们勿喷
async createCode(params) {
if (this.getHttpInfo()) {
params = this.getHttpInfo().body;
params = params ? params : '{}'
params = JSON.parse(params)
}
const db = uniCloud.database()
const verifyCodes = db.collection('opendb-verify-codes')
const uCode = uniCloud.importObject('uni-captcha-co')
await uniCaptcha['create']({
scene: params.scene,
uniPlatform: 'h5',
deviceId: '12345678910'
})
let res = await verifyCodes.where({
scene: params.scene,
device_uuid: '12345678910',
state: 0
}).limit(1).orderBy('created_date', 'desc').get()
return {
code: 200,
data: res.data[0].code,
msg: ''
}
},
async uploadFile(params) {
if (this.getHttpInfo()) {
params = this.getHttpInfo().body;
params = params ? params : '{}'
params = JSON.parse(params)
}
let result, data
if (params.dataUrl) {
params.dataUrl = params.dataUrl.split(',')[1];
data = Buffer.from(params.dataUrl, 'base64');
}
result = await uniCloud.uploadFile({
fileContent: data,
cloudPath: params.name
})
return {
code: 200,
data: result,
msg: ''
}
},
前端代码
const fileToBase64 = (file:any) => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = (event:any) => {
resolve(event.target.result);
};
reader.onerror = (error) => {
reject(error);
};
reader.readAsDataURL(file);
});
};
const customRequest = (val:Record<string,any>) => {
setLoading(true);
fileToBase64(val.file).then(async (base64) => {
let data = await uploadFile({
name: val.file.name,
dataUrl: base64,
});
setFormModel({
...formModel,
img: data.data.fileID,
});
setLoading(false);
});
};