| 
						 | 
						- // 此方法适用于web
 - // import OSS from "ali-oss"
 - import config from '@/config.js'
 - 
 - /**
 -  * 生成一个随机的Key
 -  */
 - function storeKey() {
 -   let s = [];
 -   let hexDigits = "0123456789abcdef";
 -   for (let i = 0; i < 36; i++) {
 -     s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
 -   }
 -   s[14] = "4";
 -   s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
 -   s[8] = s[13] = s[18] = s[23] = "-";
 -   return s.join("");
 - }
 - 
 - /**
 -  * 根据当天日期在OSS端生成文件夹
 -  */
 - function storeFolder() {
 -   const date = new Date();
 -   const formatNumber = n => {
 -     n = n.toString()
 -     return n[1] ? n : '0' + n
 -   }
 -   return [date.getFullYear(), date.getMonth() + 1, date.getDate()].map(formatNumber).join('-')
 - }
 - 
 - 
 - export function uploadFileToOSS(file) {
 - 	
 - 	uni.showLoading({
 - 	    title: '上传中...'
 - 	});
 - 	
 - 	return new Promise((resolve,reject) => {
 - 		// 创建OSS实例
 - 		const client = new OSS(config.aliOss.config);
 - 		
 - 		// 设置文件名和文件目录
 - 		const suffix = '.' + file.name.split('.').pop();
 - 		let key = storeFolder()
 - 		if(key[key.length - 1] != '/') key += '/'
 - 		const fileName = key + storeKey() + suffix; // 注意:文件名需要是唯一的  
 - 		
 - 		// 使用put接口上传文件  
 - 		client.multipartUpload(fileName, file, {
 - 			headers: {
 - 			  'Content-Disposition': 'inline',
 - 			  'Content-Type': file.type
 - 			}
 - 		}).then(res => {
 - 			uni.hideLoading();
 - 			resolve(config.aliOss.url + res.name);
 - 		}).catch(err => {
 - 			uni.hideLoading();
 - 			reject(err)
 - 		})
 - 	})
 - }
 
 
  |