華為 mate8 拍照上傳圖片失敗
阿新 • • 發佈:2018-11-15
華為 mate8 拍照上傳圖片失敗
問題描述
在上傳圖片時,華為 mate8 掉起相簿可以正常上傳,但是掉起相機拍照片時,上傳失敗(僅限於原生瀏覽器)。場景:諮詢流程上傳圖片,上傳檢查檢驗
解決方案
通過 debugger ,發現,mate8 在原生瀏覽器拍照上傳時,有一個小坑,拍完照獲取的照片名字有兩個 ‘.’ ,所以擷取到的名字後臺識別不了,錯誤名字例項為:xxxxx.xxxxx.jpg;前端解決方案如下:
// file 為檔案物件
let _fileName = "",
_rex = /\./g,
_rex2 = /\&/g;
let _fileLocalName = "" ;
if (files.name.match(_rex).length == 1) {
_fileName = files.name.split(".")[1];
_fileLocalName = files.name;
} else {
_fileName = files.name.split(".")[2];
_fileLocalName =
files.name.split(".")[0] +
files.name.split(".")[1] +
"." +
files.name.split(".")[2];
}
if (_fileLocalName.indexOf("&" ) > 0) {
_fileLocalName = _fileLocalName.replace(_rex2, "");
}
//上傳請求
api.ajax({
url: XHRList.imgCreate,
method: "POST",
data: {
fileContent: base64
.split(",")[1]
.replace(/\+/g, "%2B")
.replace(/\n/g, ""),
fileName: _fileLocalName,
extName: _fileName,
},
timeout: 300000,
done(res) {
},
fail(res) {
}
});