小程序添加、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实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

Java实现数据库图片上传功能详解

《Java实现数据库图片上传功能详解》这篇文章主要为大家详细介绍了如何使用Java实现数据库图片上传功能,包含从数据库拿图片传递前端渲染,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、数据库搭建&nbsChina编程p; 3、后端实现将图片存储进数据库4、后端实现从数据库取出图片给前端5、前端拿到

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Java文件上传的多种实现方式

《Java文件上传的多种实现方式》文章主要介绍了文件上传接收接口的使用方法,包括获取文件信息、创建文件夹、保存文件到本地的两种方法,以及如何使用Postman进行接口调用... 目录Java文件上传的多方式1.文件上传接收文件接口2.接口主要内容部分3.postman接口调用总结Java文件上传的多方式1

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小