搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小蓝xlanll
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【重磅发布】RUFF 公链测试网络正式上线_ruffchain钱包(1.2.3) android版发布
2
python程序如何在其他电脑上运行_Python文件被编译成exe文件并直接在其他windows计算机上运行,其它,Windows,电脑...
3
CH395Q之CH395Q驱动库移植与驱动库分析(二)
4
LCD图片显示、触摸屏、音乐播放、缩放图片和播放视频_lcd屏显示avi动画
5
Ubuntu 20.04 设置开机自启脚本_ubuntu 设置shell 开机自启
6
计算机毕业设计ssm基于Java的校园互助管理信息系统的设计与实现urx239 (附源码)轻松不求人_校园互助平台设计与实现
7
【深度学习】【TensorFlow 】查看Tensorflow和python对应版本、将现有的TensorFlow更新到指定的版本_python 3.9.17 对应的tensorflow
8
【mysql学习篇】分页查询&连接查询索引优化剖析_mysql开发技巧 - 分页和索引
9
Provisioning profile "iOS Team Provisioning Profile:XXXX"doesn't include the currently selected devi_"provisioning profile \"ios team provisioning prof
10
5G用户作被叫未接通问题_nr cell prach failure
当前位置:
article
> 正文
thinkPHP实现对象存储oss,将图片上传到阿里云oss_thinkphp 怎么把服务器图片上传到oss
作者:小蓝xlanll | 2024-02-07 14:21:06
赞
踩
thinkphp 怎么把服务器图片上传到oss
演示效果和下载地址
:
http://www.erdangjiade.com/js/1021.html
可以在阿里云网站下载oss的demo源代码PHP版:v2.0.5
https://help.aliyun.com/document_detail/32174.html?spm=5176.doc44688.6.375.MwiLwn
不过,阿里云的这个demo,用的是命名空间(命名空间具体功能我也没搞懂,各位自行百度,高手请路过),如要集成到thinkPHP里面需要修改下相关文件和命名空间,我已经整理好了。
第一步:将oss引入到tp框架里面,路径为:
Thinkphp-->Library-->Org,将OSS文件夹放在org里面。
第二步:公共配置文件里面
//oss配置
"OSS_ACCESS_ID" => '',
"OSS_ACCESS_KEY"=> '',
"OSS_ENDPOINT" => '',
"OSS_TEST_BUCKET" => '',
"OSS_WEB_SITE" =>'', //上面4个就不用介绍了,这个OSS_WEB_SITE是oss的bucket创建后的外网访问地址,如需二级域名,可以指向二级域名,具体可以参考阿里云控制台里面的oss
//oss文件上传配置
'oss_maxSize'=>1048576, //1M
'oss_exts' =>array(// 设置附件上传类型
'image/jpg',
'image/gif',
'image/png',
'image/jpeg',
'application/octet-stream',//阿里云好像都是通过二进制上传,似乎上面4个后缀设置起到什么用?
),
第三步:公共function里面
// 返回json
function backJson($code,$info){
$arr['status']=$code;
$arr['info']=$info;
print_r(json_encode($arr));
exit;
}
//oss上传
/*
*$fFiles:文件域
*$n:上传的路径目录
*$ossClient
*$bucketName
*$web:oss访问地址
*$isThumb:是否缩略图
*/
function
ossUpPic
(
$fFiles
,
$n
,
$ossClient
,
$bucketName
,
$web
,
$isThumb
=
0
){
$fType
=
$fFiles
[
'type'
];
$back
=
array
(
'code'
=>
0
,
'msg'
=>
''
,
);
if
(!
in_array
(
$fType
,
C
(
'oss_exts'
))){
$back
[
'msg'
]=
'文件格式不正确'
;
return
$back
;
exit
;
}
$fSize
=
$fFiles
[
'size'
];
if
(
$fSize
>
C
(
'oss_maxSize'
)){
$back
[
'msg'
]=
'文件超过了1M'
;
return
$back
;
exit
;
}
$fname
=
$fFiles
[
'name'
];
$ext
=
substr
(
$fname
,
stripos
(
$fname
,
'.'
));
$fup_n
=
$fFiles
[
'tmp_name'
];
$file_n
=
time
().
'_'
.
rand
(
100
,
999
);
$object
=
$n
.
"/"
.
$file_n
.
$ext
;
//目标文件名
if
(
is_null
(
$ossClient
))
exit
(
1
);
$ossClient
->
uploadFile
(
$bucketName
,
$object
,
$fup_n
);
if
(
$isThumb
==
1
){
// 图片缩放,参考https://help.aliyun.com/document_detail/44688.html?spm=5176.doc32174.6.481.RScf0S
$back
[
'thumb'
]=
$web
.
$object
.
"?x-oss-process=image/resize,h_300,w_300"
;
}
$back
[
'code'
]=
1
;
$back
[
'msg'
]=
$web
.
$object
;
return
$back
;
exit
;
}
第四步:控制器里的操作方法里面,例如控制器是
Index
,
public
function
upPic
(){
//oss上传
$bucketName
=
C
(
'OSS_TEST_BUCKET'
);
$ossClient
=
new
\Org\OSS\OssClient
(
C
(
'OSS_ACCESS_ID'
),
C
(
'OSS_ACCESS_KEY'
),
C
(
'OSS_ENDPOINT'
),
false
);
$web
=
C
(
'OSS_WEB_SITE'
);
//图片
$fFiles
=
$_FILES
[
'pic_1'
];
$rs
=
ossUpPic
(
$fFiles
,
's'
,
$ossClient
,
$bucketName
,
$web
,
0
);
if
(
$rs
[
'code'
]==
1
){
//图片
$img
=
$rs
[
'msg'
];
//如返回里面有缩略图:
$thumb
=
$rs
[
'thumb'
];
}
else
{
$this
->
error
(
'图片有误:'
.
$rs
[
'msg'
]);
return
;
}
}
第五步:调用,文件域名
pic_1
,要与第四步里面的
$_FILES
[
'pic_1'
]一致。
action
地址为控制器的操作地址,例如:/
index
.
php
/
Home
/
Index
/
upPic
<
meta charset
=
"UTF-8"
/>
<
form action
=
"/index.php/Home/Index/upPic"
enctype
=
"multipart/form-data"
method
=
"post"
>
<
input type
=
"file"
name
=
"pic_1"
value
=
""
/>
<
input type
=
"submit"
value
=
"上传"
/>
</
form
>
复制代码
演示效果和下载地址
:
http://www.erdangjiade.com/js/1021.html
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小蓝xlanll/article/detail/65935
推荐阅读
article
vs
code
连接
远程
服务器
跑程序使用
session
防止断连导致程序终止_
终端
远程
连接
服务器
后关闭v...
vs
code
连接
远程
服务器
跑程序使用
session
防止断连导致程序终止打开命令行后输入以下命令创建会话:screen ...
赞
踩
article
SpringMVC
之
@
InitBinder
注解详解...
说明与作用springmvc并不是能对所有类型的参数进行绑定的,如果对日期Date类型参数进行绑定,就会报错Illega...
赞
踩
article
如何在
VSCode
上使用
C++
_
c++
vscode
...
由于每个
vscode
版本的内容都不一样了,找了很久网上都是旧版的内容,跟着做一直有乱码或者报错的情况,所以这里重新记录一...
赞
踩
article
python
开发
环境
(
PyCharm
)搭建指南_
pycharm
配置
python
运行
环境
...
python
开发
环境
(
PyCharm
)搭建指南_
pycharm
配置
python
运行
环境
pycharm
配置
python
运...
赞
踩
article
[R
语言
绘图
]
绘图
样式
设置(
符号
、线条、颜色、
文本属性
)_r
语言
绘图
中
ps
字体
怎么用...
设置图像
样式
有两种方法,一种是全局修改,一种只针对一幅图片有效。_r
语言
绘图
中
ps
字体
怎么用r
语言
绘图
中
ps
字体
...
赞
踩
article
如何
启动
若依框架...
链接:https://pan.baidu.com/s/1s8-Y1ooaRtwP9KnmP3rxlQ?pwd=1234提...
赞
踩
article
R
语言
及
R
studio
入门小建议
(
一
)...
R
语言
及
R
studio
入门小建议
(
一
)前言相关背景及学习资料基本操作数据导入包
(
package)外部数据的导入数据类型和...
赞
踩
article
php
访问
web
service
,PHP调用
web
service
数据
接口
...
近期开发一个项目,需要网站与线下crm系统数据同步,因此需要PHP调用crm
接口
,但是这个
接口
不是常用的API
接口
,而是...
赞
踩
article
使用
screen
在
后台
离线
运行
程序(
linux
服务器
)_
screen
后台
...
在
linux
服务器
中
使用
screen
在
后台
离线
运行
程序_
screen
后台
screen
后台
目...
赞
踩
article
【
Python
】
Windows
:
Python
3.9
.2
下载
和
安装
_python
3.9
下载
...
Python
软件基础教程:
Python
下载
与
安装
指南(
下载
、
安装
、配置、验证)_python
3.9
下载
python
3.9
...
赞
踩
article
R
语言
入门
看
这
一章就够了(上)_
rstudio
零
基础
入门
...
这
里最好不要放到C盘,也不要有中文路径,空格路径。_
rstudio
零
基础
入门
rstudio
零
基础
入门
...
赞
踩
article
Vscode
配置
ssh
远程连接
服务器
_
vscode
连接远程
服务器
ssh
...
这篇文章介绍了如何在
Vscode
中配置SSH远程连接
服务器
的过程,包括安装插件和使用步骤,以及记住密码的教程。vscod...
赞
踩
article
R
语言
基础-
Rstudio
基本
使用
_
rstudio
使用
...
R
语言
基本
使用
中rstuio的相关基本指令_
rstudio
使用
rstudio
使用
...
赞
踩
article
ubuntu
20 安装
mysql8
_
ubuntu
20
安装
mysql8
...
设置允许远程IP连接:然后由于版本mysql版本问题还需要修改密码加密规则:ALTER USER 'root'@'%' ...
赞
踩
article
RedHat
学习
笔记32--不间断
会话
服务
_
redhat
screen
...
本系列博客是笔者在
学习
刘遄的《Linux就该这样学》的笔记,个人觉得这是一本很好的书,很值得我们去
学习
。因为笔者是自学,...
赞
踩
article
The
remote
ho
s
t may not
meet
VS Code Server‘
s
prer...
lib
s
td
c++
.
s
o.6 版本过低
s
tring
s
/u
s
r/lib64/
lib
s
td
c++
.
s
o.6|grep GL...
赞
踩
article
VsCode
中
运行
C/
C++
_
vscode
运行
c++
代码...
在
VsCode
中如何
运行
C/
C++
,
VsCode
中C/
C++
环境配置,编写配置文件,下载对应版本mingw64_vsco...
赞
踩
article
python
连接SQL
SERVER
数据库...
无_
python
连接sql server
python
连接sql server #coding=u...
赞
踩
article
Pycharm
的
设置
和基本
使用
1_
pycharm
管理
ide
设置
...
这篇文章,主要是针对刚开始学习python语言,不怎么会
使用
pycharm
的
童鞋们;我来带领大家详细了解下 pychar...
赞
踩
article
R
语言
统计入门
第二章
R
语言
环境——
2.2
作图系统_
r
语言
去除掉
均匀分布
中大于
0.5
点数做图...
2.2
作图系统
2.2
.1图形布局x<-
r
unif(50,0,2)#生成50个(0,2)区间服从
均匀分布
的随...
赞
踩
相关标签
python
spring
springmvc
c++
vscode
开发语言
pycharm
R
绘图
样式
mysql
redis
adb
经验分享
r语言
php访问web service
服务器
linux
运维
1024程序员节
数据分析