小程序添加、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

相关文章

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建