小程序添加、oss上传加水印

2024-02-07 07:38
文章标签 程序 oss 加水 上传

本文主要是介绍小程序添加、oss上传加水印,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HTML页面

<view class="container"><view class="page-body"><form catchsubmit="formSubmit" catchreset="formReset"><view class="page-section"><view class="page-section-title">姓名</view><view class="weui-cells weui-cells_after-title"><view class="weui-cell weui-cell_input"><view class="weui-cell__bd" style="margin: 30rpx 0" ><input class="weui-input" name="name" placeholder="这是一个输入框" /></view></view></view></view><view class="page-section"><view class="page-section-title">年龄</view><view class="weui-cells weui-cells_after-title"><view class="weui-cell weui-cell_input"><view class="weui-cell__bd" style="margin: 30rpx 0" ><input class="weui-input" name="age" placeholder="这是一个输入框" /></view></view></view></view><view class="page-section page-section-gap"><view class="page-section-title">性别</view><radio-group name="sex"><label><radio value="男"/></label><label><radio value="女"/></label></radio-group></view><button size="mini" bindtap="bindUploadTap">选择图片</button><image src="{{imgsrc}}"></image><input hidden="true" name="image" value="{{images}}"/><view class="btn-area"><button style="margin: 30rpx 0" type="primary" formType="submit">Submit</button></view></form></view></view>

js代码块

//表单添加formSubmit(e) {//console.log(e.detail.value.image)// console.log(e.detail.value.sex)// console.log(e.detail.value.age)var name = e.detail.value.name;var sex = e.detail.value.sex;var age = e.detail.value.age;var image = e.detail.value.image;wx.request({url: 'http://day518.homework.com/api/insert', //仅为示例,并非真实的接口地址data: {name:name,sex:sex,age:age,image:image},// method:"POST",// header: {//   'content-type': 'aapplication/x-www-form-urlencoded' // 默认值// },success (res) {console.log(res.data)}})},//获取图片,并将图片添加到表单中通过隐藏域一起提交
bindUploadTap:function(){let _this = thiswx.chooseImage({count: 1, // 默认9sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: function (res) {// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片var tempFilePaths = res.tempFilePaths_this.setData({imgsrc: tempFilePaths[0]})wx.uploadFile({header: {'content-type': 'application/x-www-form-urlencoded'},url: 'http://day518.homework.com/api/upload_img', //仅为示例,非真实的接口地址method:"post",filePath: tempFilePaths[0],name: 'image',formData: {'user': 'test'},success: function (res) {var data = res.data//console.log(res.data)var images=res.data;_this.setData({images})}})}})
},

下载阿里云SDK

composer require aliyuncs/oss-sdk-php

下载image类库文件

composer require intervention/image

引入库

use OSS\OssClient;//引入阿里云OSS云存储
use OSS\Core\OssException;//引入阿里云OSS云存储异常机制
use OSS\Model\RefererConfig;//引入阿里云防盗链
use Intervention\Image\Facades\Image;//引入Intervention  Image类库

## 定义路由## 添加数据和图片//小程序添加public function insert(Request $request){//接收数据$param=$request->all();//print_r($param);die();//验证$validator = Validator::make($request->all(), ['name' => 'required','sex' => 'required','age' => 'required',
//            'image'=>'required']);if ($validator->fails()) {return ['code'=>500,'data'=>'','msg'=>'所填信息不能为空'];}//添加$res=Students::create($param);if ($res){return ['code'=>200,'data'=>$res,'msg'=>'添加成功'];}else{return ['code'=>500,'data'=>'','msg'=>'添加失败'];}}//小程序添加public function upload_img(Request $request){//获取文件上传的路径$file=$request->file('image')->store('','image');//引用系统字体文件$fontPath=public_path('STKAITI.TTF');//调用Intervention Image类库进行制作缩略图并添加文字水印操作(可以使用链式操作多级处理)//fit()自适应图片大小   text()水印文字 样式    使用use引入$fontPath(字体)Image::make("./upload/".$file)->fit(300,300)->text('抽奖',135,135,function ($font)use ($fontPath){$font->file($fontPath)->size(20)//字体大小->color('#000')//字体颜色(支持十六进制颜色码)->valign('center');//对齐方式})->save("./upload/".$file);//覆盖原文件// 阿里云AccessKey和AccessKeySecret$accessKeyId = "LTAI5t5s5FJEdqgbEtVikhw1";$accessKeySecret = "5hRfEbliZN6mIFQjctJlSj8A82YsW5";// Endpoint为上海,其它Region请按实际运营情况填写。$endpoint = "http://oss-cn-shanghai.aliyuncs.com";// 设置存储空间名称。$bucket= "aliqiang";// 设置文件名称。$object = time().'.jpg';//实例化阿里云防盗链基类$refererConfig = new RefererConfig();// 设置允许空Referer(防盗链可以为空)。$refererConfig->setAllowEmptyReferer(true);//如文件无法预览,说明Bucket设置了 Referer(防盗链设置成功)//建议在Refere白名单中加上 *.console.aliyun.com。// 添加Referer白名单。Referer参数支持通配符星号(*)和问号(?)。//替换成*.console.aliyun.com 图片可以正常预览$refererConfig->addReferer("*.console.aliyun.com");//可以设置多个防盗链$refererConfig->addReferer("www.aliiyuncs.com");//使用错误抛出机制try{//阿里云OSS云存储$ossClient = new OssClient($accessKeyId,$accessKeySecret, $endpoint);//注意文件上传的路径  需要public_path()定位上传的文件的路径 相对路径可能会失效$ossClient->uploadFile($bucket, $object, public_path("/upload/".$file));//给对应的空间名称配置防盗链并推送到云端配置$ossClient->putBucketReferer($bucket, $refererConfig);$urlPath="http://day518.homework.com/upload/".$file;return $urlPath;
//            $res=Students::create($urlPath);
//            if ($res){
//                return ['code'=>200,'data'=>$urlPath,'msg'=>'添加成功'];
//            }else{
//                return ['code'=>500,'data'=>'','msg'=>'添加失败'];
//            }} catch(OssException $e) {printf(__FUNCTION__ . ": FAILED\n");printf($e->getMessage() . "\n");return;}//print(__FUNCTION__ . ": OK" . "\n");//return ['code'=>200,'data'=>$file,'msg'=>'上传成功'];}

这篇关于小程序添加、oss上传加水印的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/687002

相关文章

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

GitLab文件的上传与下载方式

《GitLab文件的上传与下载方式》:本文主要介绍GitLab文件的上传与下载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录GitLab 项目拉取到本地GitLab 项目上传方法方法 1:本地项目未初始化Git方法 2:本地项目已初始化GitGitLab 上

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动