1. 程式人生 > >華為 mate8 拍照上傳圖片失敗

華為 mate8 拍照上傳圖片失敗

華為 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) { } });