Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
飞鱼0526
ShopXO
提交
89bd63c3
ShopXO
项目概览
飞鱼0526
/
ShopXO
与 Fork 源项目一致
Fork自
纵之格 / ShopXO
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
89bd63c3
编写于
2月 19, 2019
作者:
D
devil_gong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
图片上传安全处理,防止图片木马
上级
9e078e36
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
26 addition
and
4 deletion
+26
-4
extend/base/Uploader.php
extend/base/Uploader.php
+26
-4
未找到文件。
extend/base/Uploader.php
浏览文件 @
89bd63c3
...
...
@@ -43,7 +43,7 @@ class Uploader
"ERROR_TYPE_NOT_ALLOWED"
=>
"文件类型不允许"
,
"ERROR_CREATE_DIR"
=>
"目录创建失败"
,
"ERROR_DIR_NOT_WRITEABLE"
=>
"目录没有写权限"
,
"ERROR_FILE_MOVE"
=>
"
文件保存时出错
"
,
"ERROR_FILE_MOVE"
=>
"
保存出错,图片有误
"
,
"ERROR_FILE_NOT_FOUND"
=>
"找不到上传文件"
,
"ERROR_WRITE_CONTENT"
=>
"写入文件内容错误"
,
"ERROR_UNKNOWN"
=>
"未知错误"
,
...
...
@@ -126,10 +126,32 @@ class Uploader
return
;
}
//移动文件
if
(
!
(
move_uploaded_file
(
$file
[
"tmp_name"
],
$this
->
filePath
)
&&
file_exists
(
$this
->
filePath
)))
{
//移动失败
// 存储图片、使用GD存储图片、防止图片包含木马
switch
(
$this
->
fileType
)
{
case
'.png'
:
$image
=
imagecreatefrompng
(
$file
[
"tmp_name"
]);
//PNG
imagesavealpha
(
$image
,
true
);
//这里很重要 意思是不要丢了$sourePic图像的透明色;
$width
=
imagesx
(
$image
);
//图宽度
$heigh
=
imagesy
(
$image
);
//图高度
$thumb
=
imagecreatetruecolor
(
$width
,
$heigh
);
imagealphablending
(
$thumb
,
false
);
//这里很重要,意思是不合并颜色,直接用$img图像颜色替换,包括透明色;
imagesavealpha
(
$thumb
,
true
);
//这里很重要,意思是不要丢了$thumb图像的透明色;
if
(
imagecopyresampled
(
$thumb
,
$image
,
0
,
0
,
0
,
0
,
$width
,
$heigh
,
$width
,
$heigh
))
{
imagepng
(
$thumb
,
$this
->
filePath
);
}
break
;
case
'.gif'
:
@
imagegif
(
@
imagecreatefromgif
(
$file
[
"tmp_name"
]),
$this
->
filePath
);
break
;
default
:
@
imagejpeg
(
@
imagecreatefromjpeg
(
$file
[
"tmp_name"
]),
$this
->
filePath
,
80
);
}
if
(
!
file_exists
(
$this
->
filePath
))
{
$this
->
stateInfo
=
$this
->
getStateInfo
(
"ERROR_FILE_MOVE"
);
}
else
{
//移动成功
}
else
{
$this
->
stateInfo
=
$this
->
stateMap
[
0
];
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录