怎么读全部图片?!!!
博主思路这样的,你每上传一张图片在没保存前不是不会关联到新闻表也就是不会关联到主表。所以你必须得有一个专门记录图片的表,没上传一张图片就记录图片路径到这张表去!!!
这样,你就可以用图片表的_id和你新闻表的imgId(这个自己命名)去关联,这要这两种表联查,你就可以看出来哪些图片是没被表引用的,也就是没关联的,你单独记录这些图片做个递归删除就好了。
改:
改博主的思路是先删后改
增和删:
我备注写的很仔细了,你看看
<template>
<view>
<uni-section title="基本用法" type="line">
<view class="example">
<!-- 基础用法,不包含校验规则 -->
<uni-forms ref="baseForm" :modelValue="baseFormData">
<uni-forms-item label="图片上传" >
<button @click="upImage">上传图片</button>
</uni-forms-item>
<uni-forms-item label="删除图片" >
<button @click="delImage">删除图片</button>
</uni-forms-item>
</uni-forms>
</view>
</uni-section>
</view>
</template>
<script>
const db = uniCloud.database();
export default {
data() {
return {
}
},
onLoad() {
let m=this;
},
methods: {
//删除图片
async delImage(){
let m=this;
uniCloud.callFunction({
name: 'aaaa',
data: {
action:"delImage",
arr:["https://mp-15c72139-6qda-116a-5eb1-ct7a6e1csf52.cdn.bspapp.com/cloudstorage/0d47b1c4-662b-45q2-bcb9-68481da93d2b.png"]
}
}).then((res) => {
// res.result.fileList.length!=0//成功
})
},
//上传图片
upImage(){
let m=this;
//获取本地图片的方法
uni.chooseImage({
count: 1,
success(res) {
console.log(res);
if (res.tempFilePaths.length > 0) {
let filePath = res.tempFilePaths[0]//这里是获取本地图片路径的
//上传方法
uniCloud.uploadFile({
filePath: filePath,
cloudPath: Date.now()+'.png',//Date.now()是时间戳 1642471441587.png
onUploadProgress: function(progressEvent) {
//这里是判断进度的 其实这个方法你没精度条就没用管这个方法
// var percentCompleted = Math.round(
// (progressEvent.loaded * 100) / progressEvent.total
// );
// console.log(percentCompleted)
},
success(res1) {
//这里就是返回图片在云存储端的实际路径
if(res1.success){
//res1.fileID 是图片路径 例如 :https://mp-15c72139-6qda-116a-5eb1-ct7a6e1csf52.cdn.bspapp.com/cloudstorage/0d47b1c4-662b-45q2-bcb9-68481da93d2b.png"// 这串路径我改过几个数字,所以你访问不了的
//res1.filePath 是跟uni.chooseImage的res.tempFilePaths对比的 看看返回的是不是你刚才上传的图片
}
debugger
},
fail() {},
complete() {}
});
}
}
});
}
}
}
</script>
<style>
</style>