当前位置:   article > 正文

微信小程序开发——上传图片_微信小程序开发上传图片

微信小程序开发上传图片

功能描述

1.拍摄或从手机相册中选择图片上传

2.chooseImage(e) 中的index用于判断是新增图片还是替换图片。

3.delImage(e) 删除当前index索引下的数据。

wx.chooseMedia(Object object)

   属性类型默认值必填说明
countnumber9最多可以选择的文件个数
mediaTypeArray.<string>['image', 'video']文件类型
sourceTypeArray.<string>['album', 'camera']图片和视频选择的来源
maxDurationnumber10拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 60s 之间。不限制相册。
sizeTypeArray.<string>['original', 'compressed']仅对 mediaType 为 image 时有效,是否压缩所选文件
camerastring'back'仅在 sourceType 为 camera 时生效,使用前置或后置摄像头
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行

 

 

object.success 回调函数

属性类型说明
tempFilesArray.<Object>本地临时文件列表
结构属性类型说明
tempFilePathstring本地临时文件路径 (本地路径)
sizenumber本地临时文件大小,单位 B
durationnumber视频的时间长度
heightnumber视频的高度
widthnumber视频的宽度
thumbTempFilePathstring视频缩略图临时文件路径
fileTypestring文件类型
合法值说明
image图片
video视频
typestring文件类型,有效值有 image 、video、mix

wxml部分

  1. <view class="imageList">
  2. <view class="imageItem" wx:for="{{imageList}}" wx:key="index">
  3. <image class="image" mode="aspectFill" bindtap="chooseImage" data-type="pictures" data-index="{{index}}" src="{{item.url}}" alt="" />
  4. <view class="delImage" catchtap="delImage" data-idnex="{{index}}">-</view>
  5. </view>
  6. <view class="imageItem addImage" bindtap="chooseImage" data-type="pictures"></view>
  7. </view>

wxss部分

  1. .imageList {
  2. padding: 32rpx;
  3. width: 100vw;
  4. box-sizing: border-box;
  5. /* 弹性布局 */
  6. display: flex;
  7. flex-direction: row;
  8. justify-content: flex-start;
  9. /* 换行 */
  10. flex-wrap: wrap;
  11. /* 内容区的实际宽度为
  12. width: calc(100vw - 64rpx);
  13. width: 686rpx;
  14. */
  15. }
  16. /* 照片容器的样式 */
  17. .imageList .imageItem {
  18. margin-bottom: 25rpx;
  19. width: 212rpx;
  20. height: 212rpx;
  21. background: #F7F9FD;
  22. border-radius: 8rpx;
  23. border: 5rpx dotted #D0D0D0;
  24. position: relative;
  25. /* overflow: hidden; */
  26. box-sizing: border-box;
  27. }
  28. .imageList .imageItem:nth-child(3n-1) {
  29. margin: 0 25rpx;
  30. }
  31. /* 图片的样式 */
  32. .imageList .imageItem .image {
  33. display: block;
  34. width: 100%;
  35. height: 100%;
  36. }
  37. /* 删除按钮的样式 */
  38. .imageList .imageItem .delImage {
  39. width: 32rpx;
  40. height: 32rpx;
  41. border-radius: 50%;
  42. background-color: #e40606;
  43. color: #ffffff;
  44. font-size: 32rpx;
  45. text-align: center;
  46. line-height: 22rpx;
  47. position: absolute;
  48. top: -16rpx;
  49. right: -16rpx;
  50. box-sizing: border-box;
  51. }
  52. /* 可以使用背景图 */
  53. .imageList .addImage::before {
  54. display: block;
  55. content: "+";
  56. width: 100rpx;
  57. height: 100rpx;
  58. color: #cccccc;
  59. /* font-weight: 700; */
  60. font-size: 70rpx;
  61. text-align: center;
  62. line-height: 100rpx;
  63. position: absolute;
  64. top: 50%;
  65. left: 50%;
  66. transform: translate(-50%, -50%);
  67. }

js部分

  1. Page({
  2. data: {
  3. imageList: []
  4. },
  5. //选择图片
  6. chooseImage(e) {
  7. let index=e.currentTarget.dataset.index
  8. console.log(index)
  9. let self = this
  10. wx.chooseMedia({
  11. count: 9,
  12. sizeType: ['original', 'compressed'], //原图 ,压缩图
  13. sourceType: ['album', 'camera'], //从相处选择 ,使用相机
  14. success(res) {
  15. console.log("res___________",res)
  16. res.tempFiles.forEach((file) => {
  17. if(index === undefined){ //添加图片
  18. self.setData({
  19. imageList: [...self.data.imageList, {
  20. url: file.tempFilePath
  21. }]
  22. })
  23. }else{ //替换当前索引下的图片
  24. self.data.imageList[index].url=file.tempFilePath
  25. self.setData({
  26. imageList:self.data.imageList
  27. })
  28. }
  29. })
  30. }
  31. })
  32. },
  33. //删除图片
  34. delImage(e) {
  35. let {
  36. imageList
  37. } = this.data
  38. let index = e.currentTarget.dataset.index
  39. imageList.splice(index, 1)
  40. this.setData({
  41. imageList
  42. })
  43. }
  44. })

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

闽ICP备14008679号