index.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. const _Http = getApp().globalData.http;
  2. Component({
  3. /**
  4. * 组件的属性列表
  5. */
  6. properties: {
  7. /* 最大上传数量 */
  8. maxCount: {
  9. type: String,
  10. value: 9
  11. },
  12. /* 文件上传类型限制 all media image file video */
  13. accept: {
  14. type: String,
  15. value: "all"
  16. }
  17. },
  18. /**
  19. * 组件的初始数据
  20. */
  21. data: {
  22. fileList: []
  23. },
  24. /**
  25. * 组件的方法列表
  26. */
  27. methods: {
  28. /* 上传文件 */
  29. afterRead(event) {
  30. for (let i = 0; i < event.detail.file.length; i++) {
  31. // 初始化数据
  32. let that = this,
  33. data = this.requestType(event.detail.file[i]);
  34. //发送请求
  35. wx.getFileSystemManager().readFile({
  36. filePath: event.detail.file[i].url,
  37. success: result => {
  38. //返回临时文件路径
  39. const fileData = result.data;
  40. _Http.basic(data).then(res => {
  41. console.log("res", res)
  42. if (res.msg == "成功") {
  43. that.uploadFile(res.data, fileData)
  44. } else {
  45. wx.showToast({
  46. title: `${fileData.filename}.${fileData.serialfilename}`,
  47. icon: "none"
  48. })
  49. }
  50. })
  51. },
  52. fail: console.error
  53. })
  54. }
  55. },
  56. /* 请求类型 */
  57. requestType(file) {
  58. //获取文件后缀
  59. var index = file.url.lastIndexOf(".");
  60. var ext = file.url.substr(index + 1);
  61. //文件名称
  62. return {
  63. "classname": "system.attachment.huawei.OBS",
  64. "method": "getFileName",
  65. "content": {
  66. "filename": file.name,
  67. "filetype": ext,
  68. "parentid": 2
  69. }
  70. }
  71. },
  72. /* 上传成功反馈 */
  73. uploadFile(res, data) {
  74. console.log('asd', res, data)
  75. var that = this
  76. wx.request({
  77. url: res.uploadurl,
  78. method: "PUT",
  79. data: data,
  80. header: {
  81. 'content-type': 'application/octet-stream'
  82. },
  83. success(a) {
  84. console.log("a", a)
  85. _Http.basic({
  86. "classname": "system.attachment.huawei.OBS",
  87. "method": "uploadSuccess",
  88. "content": {
  89. "serialfilename": res.serialfilename
  90. }
  91. }).then(s => {
  92. return console.log(s);
  93. if (res.msg != "成功") return;
  94. let fileList = that.data.fileList;
  95. for (let i = 0; i < res.data.length; i++) {
  96. let arr = {
  97. url: res.data[i].fobsurl,
  98. ownerid: res.data[i].ownerid,
  99. tattachmentid: res.data[i].tattachmentid,
  100. ownertable: res.data[i].ownertable,
  101. fdocument: res.data[i].fdocument,
  102. }
  103. fileList.push(arr)
  104. };
  105. // 用户头像 先删除 在修改
  106. if (that.data.upType == "userImage" && fileList.length >= 2) {
  107. that.dleeteDealWith(0);
  108. }
  109. that.setData({
  110. fileList
  111. });
  112. /* 返回数据 */
  113. that.triggerEvent("imageChange", {
  114. fileList
  115. })
  116. }).catch(err => {
  117. console.log(err)
  118. })
  119. }
  120. })
  121. },
  122. }
  123. })