file.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { baseUrl, apiPath } from '@/common/config';
  2. import request, { getAccessToken } from '@/common/request';
  3. const FileApi = {
  4. // 上传文件
  5. uploadFile: (file, directory) => {
  6. uni.showLoading({
  7. title: '上传中',
  8. });
  9. return new Promise((resolve, reject) => {
  10. uni.uploadFile({
  11. url: baseUrl + apiPath + '/infra/file/upload',
  12. filePath: file,
  13. name: 'file',
  14. header: {
  15. Accept: '*/*',
  16. Authorization: 'Bearer ' + getAccessToken(),
  17. },
  18. formData: {
  19. directory,
  20. },
  21. success: (uploadFileRes) => {
  22. let result = JSON.parse(uploadFileRes.data);
  23. if (result.error === 1) {
  24. uni.showToast({
  25. icon: 'none',
  26. title: result.msg,
  27. });
  28. } else {
  29. return resolve(result);
  30. }
  31. },
  32. fail: (error) => {
  33. console.log('上传失败:', error);
  34. return resolve(false);
  35. },
  36. complete: () => {
  37. uni.hideLoading();
  38. },
  39. });
  40. });
  41. },
  42. // 获取文件预签名地址
  43. getFilePresignedUrl: (name, directory) => {
  44. return request({
  45. url: '/infra/file/presigned-url',
  46. method: 'GET',
  47. params: {
  48. name,
  49. directory,
  50. },
  51. });
  52. },
  53. // 创建文件
  54. createFile: (data) => {
  55. return request({
  56. url: '/infra/file/create', // 请求的 URL
  57. method: 'POST', // 请求方法
  58. data: data, // 要发送的数据
  59. });
  60. },
  61. };
  62. export default FileApi;