php上传图片并显示代码,php图片上传代码(完整版已测试)

本文提供了一段完整的PHP图片上传代码,该代码创建按日期命名的文件夹存储图片,支持jpg, jpeg, png, gif, bmp等格式,且限制上传文件大小为2MB。图片以上传时间的Linux时间戳命名,并提供了图片尺寸信息。代码经过测试,安全可用。" 89917441,7481267,银行ATM系统设计与实现,"['数据库设计', '前端开发', '后台开发', '交互流程', '金融系统']

php图片上传代码本来是一个很简单的事,之前笔者图省事,直接网上下载了一个php图片上传小程序,结果导致wordpress网站被黑,因为留有后门,后来排查直接删除整个小程序,自己用重新写了一个php图片上传功能,缺点就是只能单张上传!

简单说一些这个这段代码,

上传目录:文件当前文件夹;

图片文件夹:自动生成,格式为日期的年月,如:201801,201802;

图片是否压缩:否;

图片名称:以上传时间的linux时间戳命名;

图片支持类型:jpg,jpeg,png,pjpeg,gif,bmp,x-png;

图片大小:默认2M(可自行修改,但是超过系统php.ini设置无效);

php图片上传完整代码如下:

$uptypes=array('image/jpg','image/jpeg',

'image/png','image/pjpeg','image/gif',

'image/bmp','image/x-png');

$addtime=date("Ym",time());

$testdir="./".$addtime."/";

if(file_exists($testdir)):

else:

mkdir($testdir,0777);

endif;

$max_file_size=2097152; //上传文件大小限制, 单位BYTE

$destination_folder=$testdir; //上传文件路径

$imgpreview=1; //是否生成预览图(1为生成,其他为不生成);

$imgpreviewsize=1/2; //缩略图比例

?>

上传文件:

允许上传的文件类型为:=implode(',',$uptypes)?>

if ($_SERVER['REQUEST_METHOD'] == 'POST')

{

if (!is_uploaded_file($_FILES["upfile"]["tmp_name"]))

//是否存在文件

{

echo "图片不存在!";

exit;

}

$file = $_FILES["upfile"];

if($max_file_size < $file["size"])

//检查文件大小

{

echo "文件太大!";

exit;

}

if(!in_array($file["type"], $uptypes))

//检查文件类型

{

echo "文件类型不符!".$file["type"];

exit;

}

if(!file_exists($destination_folder))

{

mkdir($destination_folder);

}

$filename=$file["tmp_name"];

$image_size=getimagesize($filename);

$pinfo=pathinfo($file["name"]);

$ftype=$pinfo['extension'];

$destination = $destination_folder.time().".".$ftype;

if (file_exists($destination) && $overwrite != true)

{

echo "同名文件已经存在了";

exit;

}

if(!move_uploaded_file ($filename, $destination))

{

echo "移动文件出错";

exit;

}

$pinfo=pathinfo($destination);

$fname=$pinfo["basename"];

echo " 已经成功上传
文件名: ".$destination_folder.$fname."
";

echo " 宽度:".$image_size[0];

echo " 长度:".$image_size[1];

echo "
大小:".$file["size"]." bytes";

if($imgpreview==1)

{

echo "
图片预览:
";

echo "%5C%22%22.%24destination.%22%5C%22";

}

}

?>

代码已经测试,完全可用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值