当前位置:   article > 正文

微信小程序 图片上传到文件服务器

微信小程序 图片上传到文件服务器

业务需求:

图片先上传到后台文件服务器,服务器返回图片的id及相关信息,再和其他要提交的内容一块提交到后台接口。

话不多说,上代码

index.wxml 

<van-uploader max-count="5" multiple file-list="{{ photoDtoList }}" bind:after-read="afterRead" bind:delete="deleteUploadFile" />

index.js

  1. import publicApi from '@/api/public';
  2. data:{
  3. photoDtoList: []
  4. },
  5. // 上传照片
  6. async afterRead(e){
  7. const { file } = e.detail;
  8. let res = await publicApi.filesUpload(file);
  9. let arr = [];
  10. if(res.success){
  11. res.success.forEach((item,index)=>{
  12. // 具体根据自己的业务修改,url为图片预览的地址,想要上传完可以直接预览必须要加isImage:true
  13. arr.push({
  14. photoId:item.id,
  15. photoSeq: index+1,
  16. isImage: true,
  17. url: `${config.sfss_url}space/${item.id}/preview`
  18. })
  19. })
  20. let list = []
  21. list = [
  22. ...this.data.photoDtoList,
  23. ...arr
  24. ]
  25. this.setData({
  26. photoDtoList: list
  27. })
  28. }
  29. },
  30. // 删除图片
  31. deleteUploadFile(e){
  32. const { index } = e.detail;
  33. this.data.photoDtoList.forEach((item,i) =>{
  34. if(i === index){
  35. this.data.photoDtoList.splice(index,1)
  36. }
  37. })
  38. this.setData({
  39. photoDtoList: this.data.photoDtoList
  40. })
  41. },

文件上传接口封装

  1. filesUpload(files) {
  2. let formData = new FormData();
  3. files.forEach(item=>{
  4. formData.appendFile('file', item.tempFilePath)
  5. })
  6. const data = formData.getData();
  7. return request({
  8. url: `${sfss_url}/space/files`,
  9. method: "POST",
  10. header: {
  11. 'content-type': data.contentType
  12. },
  13. data: data.buffer
  14. })
  15. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/526490
推荐阅读
相关标签
  

闽ICP备14008679号