uniapp微信小程序接入微信云函数(文本检测和图片检测篇)
分类: 前端
简介:参考文档链接:csdn使用说明:文章中的用法是放在图片和文本上传中,我的用处是微信授权头像和昵称后记:感觉自己nc了,微信头像本来就是经过验证的,多过一遍没有意义,具体问题下方会说明。代码实例: <template> <view v if="openModal" class="wx authorization modal"> <view class="wam__mask" @touchmove.prevent="" @tap.stop="closeModal"></view> <! 内容区域 > <view class="wam__wrapper"> <! 关闭按钮 > <view class="wam__close btn" @tap.stop="closeModal"> <text class="tn icon close"></text> </view> <! 标题 > <view class="wam__title">获取您的昵称、头像</view> <! tips > <view class="wam__sub title"> 获取用户头像、昵称,主要用于向用户提供具有辨识度的用户中心界面 </view> <! 头像选择 > <view class="wam__avatar"> <view class="button shadow"> <button class="button" open type="chooseAvatar" @chooseavatar="chooseAvatarEvent"> <view v if="userInfo.avatar" class="avatar__image"> <image class="image" :src="userInfo.avatar" mode="aspectFill"></image> </view> <view v else class="avatar__empty"> <image class="image" src="https://cdn.nlark.com/yuque/0/2022/jpeg/280373/1668928062708 assets/web upload/764843cf 055a 4cb6 b5d3 dca528b33fd4.jpeg" mode="aspectFill"></image> </view> <view class="avatar icon"> <view class="tn icon camera fill"></view> </view> </button> </view> </view> <! 昵称输入 > <view class="wam__nickname"> <view class="nickname__data"> <input class="input" type="nickname" v model="inputNickname" placeholder="请输入昵称" placeholder style="color: #AAAAAA;" @change="handleNicknameChange"> </view> </view> <! 保存按钮 > <view class="wam__submit btn" :class="[{ 'disabled': !userInfo.avatar || !userInfo.nickname }]" hover class="tn btn hover class" :hover stay time="150" @tap.stop="submitUserInfo"> 保 存 </view> </view> </view>
</template> <script> export default { options: { // 在微信小程序中将组件节点渲染为虚拟节点,更加接近Vue组件的表现(不会出现shadow节点下再去创建元素) virtualHost: true }, props: { value: { type: Boolean, default: false } }, data() { return { openModal: false, userInfo: { avatar: '', nickname: '' }, inputNickname: '' } }, watch: { value: { handler(val) { this.openModal = val }, immediate: true }, }, methods: { //选择昵称 handleNicknameChange(e) { const newNickname = e.detail.value; // 保存当前上下文的 this var that = this; wx.cloud.init({ env: "", }) if(newNickname){ console.log(newNickname) wx.cloud.callFunction({ name: 'checkTextSec', data: { content:newNickname }, success: (res) => { if (res.result.errCode === 0) { if (res.result.result.label === 100) { console.log('合法文本') that.userInfo.nickname = newNickname; } else { console.log('违法文本') } } else { console.log('其他异常') } }, fail: (e) => { console.log(e) } }) } }, // 头像选择 chooseAvatarEvent(e) { var imageUrl = e.detail.avatarUrl console.log(imageUrl) // 保存当前上下文的 this var that = this; //调用云函数checkIploadInfo,检测头像 uni.getImageInfo({ src: imageUrl, success: function(info) { // 使用 uni.request 获取图片数据 uni.request({ url: imageUrl, responseType: 'arraybuffer', success: function(response) { // 图片数据转换为 ArrayBuffer 格式的二进制数据 var arrayBuffer = response.data; wx.cloud.init({ env: "", }) wx.cloud.callFunction({ name: "checkUploadInfo", data: { contentType: `image/jpeg`, arrayBuffer: arrayBuffer }, success: (res) => { if (res.result.errCode === 0) { console.log('合法图片') that.userInfo.avatar = e.detail.avatarUrl } else if (res.result.errCode === 87014) { console.log('违法图片') uni.showToast({ title: '违规图片,请重新上传', icon: 'error', duration: 2000 }); } }, fail: () => { console.log('检测失败') uni.showToast({ title: '上传失败,请重新选择图片', icon: 'error', duration: 2000 }); } }) }, fail: function(error) { console.error("加载图片失败:", error); } }); }, fail: function(error) { console.error("获取图片信息失败:", error); } }); }, // 更新用户信息 submitUserInfo() { // 判断是否已经选择了用户头像和输入了用户昵称 if (!this.userInfo.avatar || !this.userInfo.nickname) { return uni.showToast({ icon: 'none', title: '请选择头像和输入用户信息' }) } // 更新完成事件 this.$emit('updated', this.userInfo) }, // 关闭弹框 closeModal() { this.$emit('input', false) }, } }
</script>使用的是图鸟的微信授权组件,实际使用后发现了几个问题:首先第一个头像授权,我添加头像验证的原因就是会涉及到上传本地图片,然后实际实验之后发现如果是违规图片,压根不会触发@chooseavatar,会报错,没有任何返回值;而合规图片就可以正常触发,得到返回值。查看了请求接口,并不是本地上传接口,应该是先上传到微信那边检测没过。第二个文本检测,需要使用@change事件,其他事件都无法获得值;并且change会调用两次,第一次无返回值,第二次才会有值,不做判断会浪费验证次数。
wrdpress网站更换域名
分类: 前端
简介:事情起因:公司官网是我用wordpress搭建的,当时官网域名没有备案,先使用的测试域名,备案号下来之后我就准备更换域名,百度之后按照步骤来问题一堆,ai也不行,在我结合一堆方案+自己摸索之后,终于成功了。具体操作步骤如下:1、备份(重中之重)备案之后如果你修改崩了也能随时恢复,我在修改过程中就崩了一次。2、修改数据网上的步骤一开始都是让修改设置里的WordPress 地址(URL)和站点地址(URL),其实这一步完全没必要,直接修改数据库数据就行。原因一:因为这两条数据也是保存在数据库中的,使用插件替换数据的时候也会一并替换。原因二:如果先修改了这两条数据,会导致网站打不开,也就没办法进后台使用插件,就只能自己用数据库软件手动修改数据,而且很容易出错,并且会导致主题的配置丢失,所以不推荐。 wordpress下载插件:Better Search Replace,输入原域名和替换域名。3、宝塔SSL数据替换成功之后,宝塔也是需要进行操作的。首页网站域名更换为你替换的域名,然后SSL也替换为新域名的整数。4、文件操作以上就是ai和百度的全部步骤,然而按照此步骤执行后会发现,网站只有几个html链接,css样式全部清空,所有图片也无法正常显示。这是因为你修改了数据库里的文件夹名,图片的路径发生了错误。wordpress的文件中也有绝对地址,所以样式会有问题。以下为我的解决方案: (1)修改网站文件夹名,修改为新域名,文件位置一般是:/www/wwwroot (2)宝塔修改网站目录,修改为新文件夹,宝塔不会自动替换为新文件夹,他搜索不到会自己创建一个旧域名文件夹。 (3)修改wordpress文件wp config.php,将旧域名替换为新域名 按照上述步骤,即可完整替换域名,样式也不再会有问题。如果遇到其他问题,请在下方留言。
dockerfile
分类: 后端
简介: #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
#
#FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
#RUN apt get update; apt get install libfontconfig1 y
#
#WORKDIR /app
#EXPOSE 9991
#
#FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
#WORKDIR /src
#COPY ["VOL.WebApi/VOL.WebApi.csproj", "VOL.WebApi/"]
#COPY ["VOL.System/VOL.System.csproj", "VOL.System/"]
#COPY ["VOL.Core/VOL.Core.csproj", "VOL.Core/"]
#COPY ["VOL.Entity/VOL.Entity.csproj", "VOL.Entity/"]
#COPY ["VOL.Order/VOL.Order.csproj", "VOL.Order/"]
#COPY ["VOL.AppManager/VOL.AppManager.csproj", "VOL.AppManager/"]
#COPY ["VOL.Builder/VOL.Builder.csproj", "VOL.Builder/"]
#RUN dotnet restore "VOL.WebApi/VOL.WebApi.csproj"
#COPY . .
#WORKDIR "/src/VOL.WebApi"
#RUN dotnet build "VOL.WebApi.csproj" c Release o /app/build
#
#FROM build AS publish
#RUN dotnet publish "VOL.WebApi.csproj" c Release o /app/publish
#
#FROM base AS final
#WORKDIR /app
#COPY from=publish /app/publish .
#ENTRYPOINT ["dotnet", "VOL.WebApi.dll"] #docker run p 3306:3306 name volmysql \
# restart=always \
# v /home/mysql/data:/var/lib/mysql \
# e MYSQL_ROOT_PASSWORD=123456 \
# d mysql:5.7 #docker build t volapi:1.0 .
#docker run d name volapi v /etc/timezone:/etc/timezone:ro v /etc/localtime:/etc/localtime:ro restart=always log opt max size=300m log opt max file=3 network=host volapi:1.0 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /app
COPY . .
RUN apt get update y && apt get install y libgdiplus && apt get clean && ln s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
ENTRYPOINT ["dotnet", "VOL.WebApi.dll"]
git上传代码到gitee
简介:1、在本地初始化git仓库(如果已经有了,则跳过这一步): git init2、添加所有文件到git仓库: git add .3、提交你的改动到本地仓库: git commit m "Initial commit"4、添加Gitee仓库为远程仓库(请将替换为你的Gitee仓库URL):<your_gitee_repo_url> git remote add origin <your_gitee_repo_url>5、将本地代码推送到Gitee仓库的develop分支(首次推送可能需要设置用户信息): git push u origin develop5.1、push失败,报错error: src refspec develop does not match any error: failed to push some refs to:5.1.1确认你的本地是否有 develop 分支。你可以使用以下命令来列出所有本地分支: git branch5.1.2如果本地没有 develop 分支,但是你想要推送到远程的 develop 分支,你需要先检出远程的 develop 分支: git checkout b develop origin/develop5.1.3如果有必要,你可以从其他分支合并代码到 develop 分支,或者添加并提交新的代码更改。 # 强制把 master 分支的代码覆盖到 develop 分支(会丢失 develop 分支原有的代码) git reset hard master git checkout b develop5.1.4完成更改后,再次尝试推送你的本地 develop 分支到远程仓库: git push u origin develop