搜索
查看
编辑修改
首页
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
NGINX - 高级负载均衡器、Web服务器、反向代理
2
python elasticsearch 分组统计_python bool must 多字段aggregations分组
3
python的pyqt5国内镜像
4
BAT 批处理创建桌面快捷方式代码大全
5
ubuntu20.04安装mysql8_unbuntu20.04 apt安装mysql8
6
ubuntu18.04安装mysql8.0_ubuntu18.04 mysql 5.7 升级 8.0
7
树莓派-2-RaspBerry4B硬件介绍和初始化安装_4b主板啥意思
8
R 清屏 清除图像_r语言清楚界面
9
qt学习:QTSQL+连接sqlite数据库+增删改查
10
docker进阶之路-基础篇 | 二:portainer安装与基本使用_portainer中没有download logs
当前位置:
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
vue
-
simple
-
uploader
上传文件、图片和文件夹_
vue
标签@
file
-
complete
...
<
uploader
:options="options" class="
uploader
-example" :fi...
赞
踩
article
VSCode
+
MobaXterm
实现在远程
服务器
上跑
代码
_
mobaxterm
需要放
代码
吗...
本文章主要是在
VSCode
和
MobaXterm
的前提下,实现
VSCode
远程连接
服务器
,本地文件上传
服务器
以及对
代码
进行...
赞
踩
article
Win
11
系统
Python3.9及PyCharm2022.02.05详细
安装
教程
_
python3.9
...
针对于win
11
系统
Python和PyCharm的
安装
._
python3.9
.
11
安装
教程
python3.9
.
11
安装
教...
赞
踩
article
用
VSCode
开发
C++
项目_
vscode
写
c++
...
写在前面最近在新学
C++
,又不想用VisualStudio那么庞大的IDE,VS体量稍微有那么点笨重(主要还是因为穷,没...
赞
踩
article
Python
IDE
—
—
PyCharm
的
下载
与
安装
(2024)...
Python
解释器捆绑了
Python
的官方开发工具
—
—
IDLE(Integrated Development and L...
赞
踩
article
react
、
next
.
js
引入
路径
修改_
next
js
修改
浏览器
路径
...
1.场景项目中引入文件,通常是import a from '../common/b'//表示src/common/b有些...
赞
踩
article
(4)
VScode
之
ssh
基础
配置
_
vscode
ssh
配置
文件
...
可以看到,中间的数字是UID(user id)和GID(group id),一般用户的ID都大于1000,因为小数字的I...
赞
踩
article
R
语言
笔记
完整版...
【R
笔记
】R
语言
函数总结R
语言
与数据挖掘:公式;数据;方法R
语言
特征对大小写敏感通常,数字,字母,. 和 _都是允许的(...
赞
踩
article
spark
高可用集群搭建及运行测试_
spark
hdfsthe
maximum
recommende...
之前的文章
spark
集群的搭建基础上建立的,重复操作已经简写;之前的配置中使用了master01、slave01、sla...
赞
踩
article
Spring
的
实例
化和依赖
注入
时机与延迟
实例
化_
springboot
controller
什么时候实...
原文链接:https://blog.csdn.net/xfx_1994/article/details/10387312...
赞
踩
article
CrossOver
23.7
for
Mac
中文版新
功能
介绍,2024年最新安装激活图文教程_cro...
CrossOver
23 拥有丰富的
功能
,可提升您在 macOS、Linux 和 ChromeOS 上运行 Window...
赞
踩
article
PyCharm
Community2023.3
最新
版
保姆级
安装
教程_
pycharm
社区
版
...
这是针对Windows10和11
版
本的
PyCharm
Community2023.3
版
本的下载
安装
和界面介绍_pycha...
赞
踩
article
使用
Flask
构建一个
Web
应用
_如何
利用
谷歌api
利用
flask
做交互web
应用
...
Flask
是一个使用Python编写的轻量级
Web
应用
框架。一、安装
Flask
以管理员身份,打开命令提示符窗口,输入下面...
赞
踩
article
python
电脑上怎么
下载
-
Python
下载
和
安装
图文教程[超详细]_
python
.
org
.down...
如今
python
语言非常火,很多小伙伴都开学习
python
,但是很多小伙伴在
安装
python
的时候遇到问题,下面我们就想...
赞
踩
article
cmdline
轻量级的
C++
命令行
解析库--
windows
_
cxxabi
.
h
...
cmdline
介绍
cmdline
是一个非常easy好用的
C++
命令行
解析库,其基于模板。所以使用非常easy,写出的代...
赞
踩
article
RedHat
学习
笔记32--不间断
会话
服务
_
redhat
screen
...
本系列博客是笔者在
学习
刘遄的《Linux就该这样学》的笔记,个人觉得这是一本很好的书,很值得我们去
学习
。因为笔者是自学,...
赞
踩
article
eclipse
利用
jdbc
连接
mysql
_
Eclipse
通过JDBC
连接
MySQL
数据库
的步骤(最原...
java可以兼容目前市面上所有类型的
数据库
,主要是因为提供了两个接口,一个用于
连接
目标
数据库
,一个用于向
数据库
中传输SQ...
赞
踩
article
python
安装_download
debugging
symbols
...
python
安装_download
debugging
symbols
download
debugging
symbol...
赞
踩
article
最新
PyCharm
安装
详细教程及
pycharm
配置
...
文中主要讲述
PyCharm
简介及其下载网站,
PyCharm
安装
程序下载,
PyCharm
的
安装
程序的
安装
及其
配置
,Virt...
赞
踩
article
Echarts
如何调整
legend
和图表
的
间距
_
echarts
控制
legend
与图
的
距离
...
首先 加入eCharts.js到项目中,在opotionts 中加入属性: grid:{ top:'25%',//距上边...
赞
踩
相关标签
upload
js
javascript
vue.js
vscode
服务器
python
pycharm
c++
ide
react
next.js
ssh
linux
r语言
人工智能
数据结构与算法
依赖注入
spring
延迟加载
macos
windows
CrossOver
CrossOver 23