球星卡微信小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.6 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. // import { getOssToken } from "@/service/oss.js";
  2. let COS = require('@/common/cos-wx-sdk-v5.min.js');
  3. /**
  4. * dispose oss直传文件(视频图片)传入以下两个参数返回一个上传后的Array[urlLink] Promise对象
  5. * @params pathList Array(String || Object[String]) 需要上传到oss的文件列表
  6. * @params fileType String 上传到oss的文件类型imagevideo
  7. * 图片上传调用let imageList = await dispose(res.tempFilePaths, 'image');
  8. * 视频上传调用let videoList = await dispose([res.tempFilePath], 'video');
  9. */
  10. export async function dispose(pathList = [], fileType = 'image'){
  11. // let ossResult = await getOssToken(); // 获取oss权限
  12. // let oss = ossResult.data;
  13. var cos = new COS({
  14. SecretId: 'AKIDpTqypPiqiKgkX3HEvKSJuEH3YnkQpzsU', // 获取的密钥id
  15. SecretKey: 'MSHo43mEOHuGL9gxwe5GAm7C0WlkSt2u', // 获取的密钥key
  16. });
  17. let premiseList = [];
  18. pathList.map((item, index) => {
  19. let promiseItem = new Promise((resolve, reject) => {
  20. let tiemr = new Date();
  21. let ext = getFileExtendingName(item.url || item.tempFilePath || item);
  22. // let nameStr = oss.dir + tiemr.getTime() + index + ext;
  23. let nameStr = tiemr.getTime() + index + ext;
  24. cos.postObject({ // 真正上传文件的函数
  25. Bucket: 'qkx-1257637852', // 自己刚才创建的桶名称
  26. Region: 'ap-nanjing', // 地域 一般都是ap-...
  27. Key: nameStr, // 上传的cos时,起一个别名
  28. FilePath: item.url || item.tempFilePath || item, // 要上传的文件
  29. // onProgress: function (info) {
  30. // console.log(JSON.stringify(info)); // 进度条
  31. // }
  32. }, function (err, data) {
  33. if(err){
  34. reject(err)
  35. }else{
  36. resolve({...item, url: 'https://'+ data.Location});
  37. }
  38. });
  39. // uni.uploadFile({
  40. // url: oss.host,
  41. // filePath: item.tempFilePath || item,
  42. // name: 'file',
  43. // fileType,
  44. // formData: {
  45. // 'key': nameStr,
  46. // "OSSAccessKeyId": oss.accessid,
  47. // "policy": oss.policy,
  48. // "Signature": oss.signature,
  49. // "success_action_status": 200,
  50. // },
  51. // success: result => {
  52. // if (result.statusCode == 200) {
  53. // let fileUrl = oss.host + '/' + nameStr;
  54. // resolve(fileUrl);
  55. // }else{
  56. // reject(result);
  57. // }
  58. // },
  59. // fail: err => {
  60. // reject(err);
  61. // }
  62. // })
  63. })
  64. premiseList.push(promiseItem);
  65. });
  66. return Promise.all(premiseList);
  67. }
  68. // 获取文件后缀
  69. function getFileExtendingName(filename){
  70. var reg = /\.[^\.]+$/;
  71. var matches = reg.exec(filename);
  72. if (matches) {
  73. return matches[0];
  74. }
  75. return '';
  76. }