本文实例为大家分享了微信小程序实现多文件或者图片上传的具体代码,供大家参考,具体内容如下
html
<view class="list1">
<view class="fonts">上传事件相关资料或文件(jpg/pdf/word)<text class="xuan">(选填)</text> </view>
<view class="cell">
<view class='jinList' wx:for="{{uploaderList}}" wx:key="index">
<image class="close1" bindtap="close" data-index="{{index}}" src="../../images/close1.png"></image>
<image class="jinListImg" wx:if="{{type != 'file'}}" bindtap='showImg' data-index="{{index}}" src='{{item}}'></image>
<image class="jinListImg" src="../../images/img.png" wx:if="{{type == 'file'}}" mode="aspectFill"></image>
</view>
<view class="jia jia1" bindtap="upImg">
<image src="../../images/jia.png" wx:if="{{isHidden}}"></image>
</view>
</view>
</view>
js
data: {
isHidden: true,//原始添加
url: [],//上传文件路径
type: '',//上传文件类型
uploaderList: [],//上传文件数组
showModal: false,
},
// // 上传图片
upImg() {
var that = this
wx.chooseMessageFile({
count: 1,
type: 'all',
success(res) {
// tempFilePath可以作为img标签的src属性显示图片
// console.log('vvvvvvvv',res.tempFiles)
const tempFilePaths = res.tempFiles[0].path
const type = res.tempFiles[0].type
wx.uploadFile({
url: app.globalData.urlSrc + '/api/chuan/index',
filePath: tempFilePaths,
name: 'file',
success(res) {
const datas = JSON.parse(res.data)
console.log('上传文件', datas)
var status = datas.status
that.data.list
if (status == 1) {
var upFiles = datas.data
if (upFiles != '') {
let tempFile = tempFilePaths;
let uploaderList = that.data.uploaderList.concat(tempFile);//返回页面的图片数据
that.data.url = that.data.url.concat(upFiles);//传给后台的图片数据
that.setData({
type: type,
uploaderList: uploaderList
})
}
}
}
})
}
})
},
// 删除上传
close(e) {
var that = this
var nowList = [];//新数据
var uploaderList = that.data.uploaderList;//原数据
for (let i = 0; i < uploaderList.length; i++) {
if (i == e.currentTarget.dataset.index) {
continue;
} else {
nowList.push(uploaderList[i])
}
}
that.setData({
uploaderList: nowList,
isHidden: true
})
},
css
.list1 {
width: 670rpx;
margin: 0 auto;
}
.tops {
display: flex;
margin-bottom: 22rpx;
}
.left1 {
margin-left: 12rpx;
line-height: 44rpx;
text-align: left;
}
.listImg1 {
width: 44rpx;
height: 44rpx;
margin-left: 24rpx;
}
.textarea1 {
width: 670rpx;
height: 250rpx;
line-height: 40rpx;
border-radius: 44rpx;
background-color: rgba(255, 255, 255, 1);
color: rgba(16, 16, 16, 1);
font-size: 14px;
text-align: left;
border: 1px solid rgba(240, 240, 240, 1);
margin:0 auto;
padding: 20rpx 40rpx;
box-sizing: border-box;
margin-bottom: 40rpx;
}
.jia{
width: 140rpx;
height: 140rpx;
margin-top: 40rpx;
}
.jia image{
width: 140rpx;
height: 140rpx;
}
.cell {
width: 100%;
overflow: hidden;
}
.jinListImg {
width: 140rpx;
height: 140rpx;
border-radius: 24rpx;
}
.close1 {
width: 40rpx;
height: 40rpx;
position: absolute;
margin-left: 100rpx;
}
.jia1 {
float: left;
position: relative;
}
示例图