const baseUrl = 'http://localhost:8080';
const utils = { getUUID() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { return (c === 'x' ? (Math.random() * 16 | 0) : ('r&0x3' | '0x8')).toString(16) }) }, getSuffix(fileName) { var first = fileName.lastIndexOf("."); var namelength = fileName.length; var filesuffix = fileName.substring(first + 1, namelength); return `.${filesuffix}` }, getfileName(fileName) { var first = fileName.lastIndexOf("."); var filesuffix = fileName.substring(0, first); return `${filesuffix.replace(/\s/g, "")}` }, getFileUrlName(fileName) { var first = fileName.lastIndexOf("/"); var namelength = fileName.length; var filesuffix = fileName.substring(first + 1, namelength); return `${filesuffix}` }, getObjectURL(file) { var url = null; if (window.createObjectURL != undefined) { url = window.createObjectURL(file); } else if (window.URL != undefined) { url = window.URL.createObjectURL(file); } else if (window.webkitURL != undefined) { url = window.webkitURL.createObjectURL(file); } return url; } }
function request(url, type, params = {}) { if (type == "URL_GET") {
url = url + '/' + params.url.join('/'); delete (params['url']); type = 'GET'; } else if (type == "URL_POST") { url = url + '/' + params.url.join('/'); delete (params['url']); type = 'POST'; }
if (localStorage.getItem('token') && localStorage.getItem('refreshToken')) { params['headers'] = { "apiToken": localStorage.getItem('token'), "apiRefreshToken": localStorage.getItem('refreshToken') }; } if (params['data'] && type == "POST") { params['data'] = JSON.stringify(params['data']); }
return new Promise(function (resolve, reject) { $.ajax({ url: baseUrl + url, type: type, ...params, contentType: 'application/json; charset=UTF-8', success: function (res) { if (res.code == 200) { resolve(res) } else {
} }, error: function (res) { reject(res) } }); }) }
function aliOssUploadFile(obj = {}) { http.getOssInfo().then((res) => { if (res.code == 200 && res.success == true) { var config = res.data; var formData = new FormData(); var filesAddress = `${config.dir}${utils.getfileName(obj.name)}-${utils.getUUID()}-${+new Date()}${utils.getSuffix(obj.name)}`; formData.append('key', filesAddress); formData.append('ossaccessKeyId', config.accessid); formData.append('policy', config.policy); formData.append('Signature', config.signature); formData.append("file", obj.file); formData.append("dir", config.dir); formData.append('success_action_status', 200); $.ajax({ type: 'POST', data: formData, url: config.host, processData: false, contentType: false, async: true, xhr: function () { myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { myXhr.upload.addEventListener('progress', (e) => { var loaded = e.loaded; var total = e.total; var percent = Math.floor(100 * loaded / total) + "%"; obj.success({ meCode: 201, data: {total, loaded, percent: percent, num: Math.floor(100 * loaded / total)} }) }, false); } return myXhr; }, success: (res) => { obj.success({meCode: 200, data: {url: config.host + '/' + filesAddress}}) }, error: (err) => { console.log(err); obj.error({code: 200, success: false, msg: 'oss上传文件失败', data: err}) } }) } else { obj.error(res); } }).catch((err) => { obj.error({code: 200, success: false, msg: '获取oss签证失败', data: err}); }) }
const http = { uploadFile: aliOssUploadFile, getOssInfo: (params) => request('/oss/getMark', 'GET', params), }
function setShowFiles(index, files) { if (index > files.length - 1) { console.log(files); var arrImg = []; files.forEach(item => { if (item.returnShow == true && !item.isDel) { arrImg.push(item.url); item.isDel = true; } }); console.log(arrImg); firstShowImgs = true; return false } if (files[index].returnShow || files[index].isDel) { setShowFiles(index - 0 + 1, files); return false } http.uploadFile({ file: files[index].file, name: files[index].file.name, success: (res) => { if (res.meCode == 200) { files[index].returnShow = true; files[index].url = res.data.url; setShowFiles(index - 0 + 1, files); } }, error: (err) => { files[index].isDel = true; setShowFiles(index - 0 + 1, files); console.log(err); } }) }
|