搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
菜鸟追梦旅行
这个屌丝很懒,什么也没留下!
关注作者
热门标签
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
c语言二分法查找次数,二分法查找
2
linux隐藏病毒处理(top查询us占用70%左右,却没有CPU高使用的进程)_top命令us很高但没进程
3
IOT项目的开源物联网平台_物联网iot平台csdn
4
Docker运行常用软件,亲测_docker 运行 浏览访问可以运行软件
5
excel 这也许是史上最好最全的VLOOKUP函数教程_从下往上匹配函数
6
MathType2024永久激活码-注册码-激活秘钥分享_mathtype密钥
7
15吨级重型货车驱动桥设计(说明书+CAD装配图 零件图+开题报告)
8
使用wireguard+frp实现内网穿透远程桌面
9
吐血整理50家企业真实大数据面试题!!学长实测,真实面试!!快收藏!_苏州大数据公司面试问题
10
selenium 自动化_selenium自动化
当前位置:
article
> 正文
PHP上传图片,以及为图片添加简单…
作者:菜鸟追梦旅行 | 2024-06-03 19:47:09
赞
踩
PHP上传图片,以及为图片添加简单…
// 上传文件类型列表
$uptypes = array (
'image/jpg',
'image/png',
'image/jpeg',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);
$max_file_size = 20000000;
//上传文件大小限制,单位BYTE
$destination_folder = '/media/img/icon/';
//上传文件路径
$watermark = 2;
//是否附加水印(1为加水印,其他为不加水印);
$watertype = 1;
//水印类型(1为文字,2为图片)
$waterposition = 1;
//水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
$waterstring = "@Leo-Jen"; //水印字符串
$waterimg = "xplore.gif";
//水印图片
$imgpreview = 1;
//是否生成预览图(1为生成,其他为不生成);
$imgpreviewsize = 1 / 2;
//缩略图比例
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//判断是否有上传文件
if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
$upfile = $_FILES['upfile'];
$name = $upfile['name'];
//文件名
$type = $upfile['type'];
//文件类型
$size = $upfile['size'];
//文件大小
$tmp_name = $upfile['tmp_name'];
//临时文件
$error = $upfile['error'];
//出错原因
if ($max_file_size < $size) {
//判断文件的大小
echo '上传文件太大';
exit ();
}
if (!in_array($type, $uptypes)) {
//判断文件的类型
echo '上传文件类型不符' . $type;
exit ();
}
if (!file_exists($destination_folder)) {
mkdir($destination_folder);
}
$pinfo = pathinfo($name);
$ftype = $pinfo['extension'];
if (file_exists("media/img/icon/" .
time() . "." . $ftype)) {
//
echo $_FILES["upfile"]["name"] . " already exists. ";
} else {
move_uploaded_file($_FILES["upfile"]["tmp_name"], "media/img/icon/" . time() . "." . $ftype);
//
echo "Stored in: " . "media/img/" . $_FILES["upfile"]["name"];
}
$destination = "media/img/icon/" . time() . "." . $ftype;
//
if (file_exists($destination) ) {
//
echo "同名的文件已经存在了";
//
exit ();
//
}
//
if (!move_uploaded_file($tmp_name, $destination)) {
//
echo "移动文件出错";
//
exit ();
//
}
$pinfo = pathinfo($destination);
$fname = $pinfo['basename'];
$image_size = getimagesize("media/img/icon/" . $fname);
//
echo "
已经成功上传
文件名:
" . $destination_folder . $fname . "
";
//
echo " 宽度:" . $image_size[0];
//
echo " 长度:" . $image_size[1];
//
echo "
大小:" . $size. " bytes";
if ($watermark == 1) {
$iinfo = getimagesize($destination, $iinfo);
$nimage = imagecreatetruecolor($image_size[0], $image_size[1]);
$white = imagecolorallocate($nimage, 255, 255, 255);
$black = imagecolorallocate($nimage, 0, 0, 0);
$red = imagecolorallocate($nimage, 255, 0, 0);
imagefill($nimage, 0, 0, $white);
switch ($iinfo[2]) {
case 1 :
$simage = imagecreatefromgif($destination);
break;
case 2 :
$simage = imagecreatefromjpeg($destination);
break;
case 3 :
$simage = imagecreatefrompng($destination);
break;
case 6 :
$simage = imagecreatefromwbmp($destination);
break;
default :
die("不支持的文件类型");
exit;
}
imagecopy($nimage, $simage, 0, 0, 0, 0, $image_size[0], $image_size[1]);
imagefilledrectangle($nimage, 1, $image_size[1] - 15, 80, $image_size[1], $white);
switch ($watertype) {
case 1 : //加水印字符串
imagestring($nimage, 2, 3, $image_size[1] - 15, $waterstring, $black);
break;
case 2 : //加水印图片
$simage1 = imagecreatefromgif("xplore.gif");
imagecopy($nimage, $simage1, 0, 0, 0, 0, 85, 15);
imagedestroy($simage1);
break;
}
switch ($iinfo[2]) {
case 1 :
//imagegif($nimage, $destination);
imagejpeg($nimage, $destination);
break;
case 2 :
imagejpeg($nimage, $destination);
break;
case 3 :
imagepng($nimage, $destination);
break;
case 6 :
imagewbmp($nimage, $destination);
//imagejpeg($nimage, $destination);
break;
}
//覆盖原上传文件
imagedestroy($nimage);
imagedestroy($simage);
}
// if ($imgpreview == 1) {
//
echo "
图片预览:
";
// echo "
echo " alt=\"图片预览:\r文件名:" .$destination_folder . $fname . "\r上传时间:\">";
// }
echo $destination_folder . $fname;
}
}
}
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop博客】
推荐阅读
article
实验
二,
栈
和
队列
的使用2021-
10
-27_
栈
和
队列
的操作
实验
报告
舞伴
问题
...
实验
报告
内容基本要求参考格式一、
实验
目的与
实验
环境1.目的:熟练掌握应用两种数据结构
栈
和
队列
,完成对应的
实验
题目;2. ...
赞
踩
article
统信
UOS
服务器
系统
-如何查看
版本信息
_
统信
操作
系统
如何查看
版本信息
...
在
统信
服务器
操作
系统
V20官网镜像下载列表里面看,有A版(兼容OpenAnolis社区技术路线)和E版(兼容openEu...
赞
踩
article
linux
下
git
更新工具,
Linux
下
更新
git
版本...
查看
git
版本,卸载旧版本(如果没有安装
git
请直接到
下
一步)
git
--versionyum remove
git
安装...
赞
踩
article
用
python
进行
因式分解
_
python
中怎么对
一个
数
进行
因式分解
?...
1、Python
因式分解
代码:importtime#对
一个
数
进行
因式分解
deffactorization(num):fa...
赞
踩
article
随心
笔记
,
第四更...
本文给大家分享的是Windows和Linux不同环境下设置一些服务自启的方式和命令
,
后面会逐步更新其他的服务的相关操作随...
赞
踩
article
零
基础
快速上手
CANoe
...
之前我们介绍了CAN通讯,它是一种用于实时应用的串行通讯协议总线,使用双绞线来传输信号,CAN被广泛地应用于车辆,工业等...
赞
踩
article
Andro
id
开发(2)--第一难 Plugin [
id
‘
com
.
andro
id
.applicat...
所以我创建了一个sample code, 创建了sample code之后, studio就去下载gradle, 我也不...
赞
踩
article
HBase
常用命令
_
hadoop
进
hbase
中的
conf
命令...
进入
hbase
shell console$HBASE_HOME/bin/
hbase
shell如果有kerberos认...
赞
踩
article
强制
保存 [
force
save
] 是什么?如何使用它?_
onlyoffice
force
save
...
阅读本文,了解
强制
保存(
force
save
)的作用、使用方法,以及如何在 ONLYOFFICE 文档编辑器中开启
强制
保...
赞
踩
article
【
AI
绘画
教程】
AI
绘画
图
生
图
怎么用?_ai 以
图
生
图
window10
教程...
需要注意的是,
AI
生成的画作可能不完全符合预期,因此可能需要进行多次尝试和调整参数才能得到满意的结果。此外,不同软件可能...
赞
踩
article
wireshark
二次开发...
2、 准备Visual C++要编译
wireshark
,开发电脑上应该安装了Visual Studio并包括了Visua...
赞
踩
article
windows7
连接无线
路由器
要求“网络
身份验证
”_电脑连接
wifi
安全
中心需要验证
用户名
密码...
主要是在
windows7
下面的解决办法在点击左边的“无线设置”-->>无线
安全
设置-->>选择
安全
类型的时候一定要选择 ...
赞
踩
article
最新
xcode
打包
IPA
(
完整
详细图文)_
xcode
ios
打包
...
网上的
xcode
打包
ipa教程大多太旧而且又不
完整
,所以整理了一个
最新
的
完整
详细的
xcode
打包
APP的图文教程分享给小...
赞
踩
article
clean
my
Mac有必要吗,什么
软件
可以
替代
clean
my
mac
...
遇到这种情况,我们
可以
借助专业的电脑深度清理
软件
——CleanMyMac X,清理不常用的
软件
和系统垃圾,非常好用!首次...
赞
踩
article
一文搞懂
Stable
Diffusion
提示
词
,收藏这篇
提示
词
合集就够了_stablediffusi...
欢迎来到
Stable
Diffusion
的世界,这里是AI和创意的交汇点。在这里,我们将一起探索如何通过精心设计的
提示
词
...
赞
踩
article
LeetCode 28. 找出
字符串
中
第一个
匹配
项的
下标
--
字符串
编码成数字
匹配
...
示例 1:输入:haystack = “sadbutsad”, needle = “sad”输出:0解释:“sad” 在...
赞
踩
article
超级
USB
设备
工具箱
V2.0 绿色版-供大家学习研究参考_
u
盘
检测器
v5.0
...
6、U
盘
烧录修复工具(PortFree Prod
u
ction Program) V3.38。15、UFormat 启动U...
赞
踩
article
Java
排序
算法
(一):
冒泡
排序
...
冒泡
排序
的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达...
赞
踩
article
Apache
POI
对
Excel
进行读写操作...
Apache
POI
是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用...
赞
踩
article
基于
vivado
实现
FFT
/I
FFT
_
vivado
fir
、
fft
...
接前贴 - 本贴是2021年秋季学期我讲授的信息与通信工程/电子信息硕士21级《EDA与数字系统》课程的课程设计,由上课...
赞
踩
相关标签
链表
数据结构
c++
服务器
运维
linux下git更新工具
用python进行因式分解
笔记
经验分享
linux
windows
汽车
android
forcesave
onlyoffice
开源
编辑器
自定义
AI作画
人工智能
wireshark
测试工具
网络
路由器