当前位置:网站首页>Uniapp uploads and displays avatars locally, and converts avatars into Base64 format and stores them in MySQL database
Uniapp uploads and displays avatars locally, and converts avatars into Base64 format and stores them in MySQL database
2022-07-07 00:20:00 【ChangYan.】
The function you want to realize is : Choose a picture locally as the avatar , Then put the picture as base64 The format is stored in the database .
The effect is as follows :
- This front-end page uses the free template shared by predecessors in the plug-in mall :https://ext.dcloud.net.cn/plugin?id=2027

about html Some Click to get avatars, master has finished , There is no need to change this part in the following figure .
- The next step is to convert the uploaded avatar into base64 Format

avatarChoose() {
let that = this;
uni.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success: function (res) {
var tempFilePaths = res.tempFilePaths;
pathToBase64(tempFilePaths[0]) // Image to base64 Tools
.then(base64 => {
console.log(base64);
console.log(typeof(base64));
that.avatar = base64; // Convert the document to base64 And display
that.avatarUpload(base64); // At the same time, upload the avatar to the database for storage
})
.catch(error => {
console.error(error)
})
}
});
},
It's used here pathToBase64 This tool , So you need to download it in the plug-in market and introduce it into the project https://ext.dcloud.net.cn/plugin?id=123

Here I output the conversion result and the type of the result 
You can see the display of the console , Successful transformation , and base64 The type is String character string

- Now the avatar just uploaded can be displayed , The next step is to store the image in the database .
In the last step of the previous code, I called avatarUpload function
So add code , Send data to the back end :
avatarUpload(avatar) {
let that = this;
var res = {
"userId": that.userId, // Corresponding to which user uploads the avatar
"avatar": avatar // Successful transformation base64
}
uni.request({
url: "http://localhost:8080/user/avatarUpload", // To back end
data: JSON.stringify(res), // Data to transfer
header: {
token: that.token },
method: "PUT",
success(r) {
console.log(r);
if (r.data.message == " Successful operation ") {
uni.showToast({
title: " Set up the success "
});
} else {
uni.showToast({
title: r.data.message,
icon: "error",
});
}
},
fail() {
uni.showToast({
title: " Network error ",
icon: "error",
});
},
});
},
For the back end , First, configure the database
Add... To the table avatar attribute
For this avatar Type of attribute , What I set up is mediumtext, Prevent overflow , That is to say base64 Is too long. , Fear varchar Class cannot survive .
( In fact, what I initially thought was that since it was String character string , Then set it to varchar, Then Baidu said varchar The maximum length of can reach 65535, So I wrote the length there 65535, The result is confirmed as soon as you enter , It automatically becomes mediumtext type , It can be said to be very intelligent …)Then add... To the class avatar attribute

Finally, the backend Java stay controller Receive at

@PreAuthorize(value = "hasAuthority('sys:put')")
@ApiOperation(" Upload your avatar " )
@PutMapping("/avatarUpload")
public ResponseResult avatarUpload(@RequestBody @Valid User user) {
int res = userService.updateUserById(user);
Map<String, Integer> map = new HashMap<>();
map.put(" Number of rows affected ",res);
return new ResponseResult<Map>(200," Successful operation ", map);
}
Because the front end only transmits userId and avatar, So call updateUserById Function to store the avatar in the database . Finally, you can see the running results :
Storage success !
边栏推荐
- 【2022全网最细】接口测试一般怎么测?接口测试的流程和步骤
- 专为决策树打造,新加坡国立大学&清华大学联合提出快速安全的联邦学习新系统
- app通用功能测试用例
- Everyone is always talking about EQ, so what is EQ?
- 37頁數字鄉村振興智慧農業整體規劃建設方案
- 2022/2/10 summary
- 【精品】pinia 基于插件pinia-plugin-persist的 持久化
- Oracle中使用包FY_Recover_Data.pck来恢复truncate误操作的表
- App general function test cases
- Designed for decision tree, the National University of Singapore and Tsinghua University jointly proposed a fast and safe federal learning system
猜你喜欢

从外企离开,我才知道什么叫尊重跟合规…

48页数字政府智慧政务一网通办解决方案

What can the interactive slide screen demonstration bring to the enterprise exhibition hall
![[boutique] Pinia Persistence Based on the plug-in Pinia plugin persist](/img/53/95ab85bfd99d943f98881596d0aa8c.png)
[boutique] Pinia Persistence Based on the plug-in Pinia plugin persist

uniapp实现从本地上传头像并显示,同时将头像转化为base64格式存储在mysql数据库中

2022年PMP项目管理考试敏捷知识点(9)

Geo data mining (III) enrichment analysis of go and KEGG using David database

What is AVL tree?

工程师如何对待开源 --- 一个老工程师的肺腑之言

【精品】pinia 基于插件pinia-plugin-persist的 持久化
随机推荐
Wind chime card issuing network source code latest version - commercially available
Three application characteristics of immersive projection in offline display
Encryption algorithm - password security
Tourism Management System Based on jsp+servlet+mysql framework [source code + database + report]
Why should a complete knapsack be traversed in sequence? Briefly explain
MIT 6.824 - raft Student Guide
ldap创建公司组织、人员
48 page digital government smart government all in one solution
PXE server configuration
Core knowledge of distributed cache
vector的使用方法_vector指针如何使用
在Docker中分分钟拥有Oracle EMCC 13.5环境
【自动化测试框架】关于unittest你需要知道的事
Random类的那些事
DAY FIVE
What can the interactive slide screen demonstration bring to the enterprise exhibition hall
DAY FOUR
@TableId can‘t more than one in Class: “com.example.CloseContactSearcher.entity.Activity“.
PostgreSQL高可用之repmgr(1主2从+1witness)+Pgpool-II实现主从切换+读写分离
互动滑轨屏演示能为企业展厅带来什么