1唱歧、ajax和vue的axios上傳的原理基本一致亏栈,這里只介紹axios
2溉浙、首先要選擇一張圖片芋忿,簡單布下靜態(tài)頁面
這里的選擇圖片按鈕點擊彈出這個選擇框炸客,事實上是在微博的發(fā)布圖片上找的靈感,大家可以去看看按F12查看他的點擊按鈕出現(xiàn)的布局戈钢,本人這里采用了
寬高設(shè)置和你的按鈕一樣的大小痹仙,讓他定位到按鈕上面,opacity隱藏殉了,就能實現(xiàn)點擊出現(xiàn)選擇文件窗口开仰,當(dāng)然input里面也要做一些設(shè)置
還需要一個canvas標(biāo)簽來轉(zhuǎn)換成base64的圖片格式,需要注意:
①薪铜、寬高必須寫在行間樣式上众弓,其他不做要求
②、寬高最好和你截取的矩形框一樣大隔箍,否則他獲取出來的base64是以你canvas寬高來的谓娃,就會出現(xiàn)這樣的情況,只有左上角一部分
頭像就變成這樣了
前端設(shè)置:
后臺node設(shè)置:新建這樣的文件蜒滩,復(fù)制粘貼代碼
數(shù)據(jù)庫設(shè)置:
base64用長文本類型來裝
前端代碼:
后臺代碼:
直接在app.js中寫
因為是formdata發(fā)的后臺就要用multer來接受
model層寫這里就行了
以上操作后就能實現(xiàn)上傳頭像滨达,更換用戶頭像了
對了奶稠,用戶可以在地址欄存著
取的時候一個正則表達(dá)式即可