vue項目base64字符串轉圖片的實現(xiàn)代碼
<img :onerror="errpic" class="customerHead" :src="param.customerHead" alt="">
data() {
return {
param:{
id:"",
customerHead: "",
}
}
}
let _this = this
let files = e.target.files[0]
if (files.size/(1024*1024) > 2) {
this.open('上傳的圖片不可大于2M!')
return false;
}
var reader = new FileReader();
reader.onload = function (e) {
var base64 = e.target.result;
_this.param.customerHead = base64
//console.log(base64)
}
if(files) {
reader.readAsDataURL(files);
}

如果修改頭像,向后臺傳base64字符串,否則會傳原圖片路徑,后臺判斷是否是base64字符串.
如果是base64字符串,則對base64字符串進行處理,在后臺服務器生成圖片.此處需要對base64字符串進行處理,如圖所示,刪除藍框部分,留逗號之后的內容.
若為圖片路徑,則不需要進行處理,直接返回圖片路徑即可.

@Value("${upload.image.path}")
private String filePath;
//base64字符串轉化成圖片 headerImgPath:http://+ip+:端口號
public String generateImage(String imgStr,String headerImgPath,String cusID)
{ //對字節(jié)數組字符串進行Base64解碼并生成圖片
if (imgStr == null) //圖像數據為空
return "../picclife/static/custom.png";
BASE64Decoder decoder = new BASE64Decoder();
try
{
//判斷是base64字符串還是圖片路徑
if(imgStr.substring(0,5).equals("data:")){
//Base64解碼
byte[] b = decoder.decodeBuffer(imgStr.substring(imgStr.indexOf(",") + 1));
for(int i=0;i<b.length;++i)
{
if(b[i]<0)
{//調整異常數據
b[i]+=256;
}
}
//生成圖片
String imgFilePath = filePath+"/headerImg/"+cusID+".jpg";//新生成的圖片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return headerImgPath+"headerImg/"+cusID+".jpg";
}else{
return imgStr;
}
}
catch (Exception e)
{
return "../picclife/static/custom.png";
}
}


總結
以上所述是小編給大家介紹的vue項目base64字符串轉圖片的實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
Vue簡易注冊頁面+發(fā)送驗證碼功能的實現(xiàn)示例
本文主要介紹了Vue簡易注冊頁面+發(fā)送驗證碼功能的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
Element-UI 解決el-table中圖片懸浮被遮擋問題小結
在開發(fā)中,發(fā)現(xiàn)element-ui在el-table中添加圖片懸浮顯示時,會被單元格遮擋的問題,對于此問題解決其實也并不難,將懸浮圖片放在body節(jié)點下,通過定位顯示即可,感興趣的朋友跟隨小編一起看看吧2024-06-06
vue-router二級導航切換路由及高亮顯示的實現(xiàn)方法
這篇文章主要給大家介紹了關于vue-router二級導航切換路由及高亮顯示的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-07-07
vue-cli項目使用mock數據的方法(借助express)
現(xiàn)如今前后端分離開發(fā)越來越普遍,前端人員寫好頁面后可以自己模擬一些數據進行代碼測試,這樣就不必等后端接口,提高了我們開發(fā)效率。今天就來分析下前端常用的mock數據的方式是如何實現(xiàn)的,需要的朋友可以參考下2019-04-04
vue3封裝AES(CryptoJS)前端加密解密通信代碼實現(xiàn)
防止數據被爬取,前后端傳參接收參數需要加密處理,使用AES加密,這篇文章主要給大家介紹了關于vue3封裝AES(CryptoJS)前端加密解密通信代碼實現(xiàn)的相關資料,需要的朋友可以參考下2023-12-12

