php多图片上传并压缩,PHP实现图片上传并压缩

PHP实现图片上传并压缩

发布于 2016-01-06 18:26:28 | 136 次阅读 | 评论: 0 | 来源: 网友投递

PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。

这篇文章主要介绍了PHP实现图片上传并压缩的相关资料,上传图片然后按照比例缩略图,感兴趣的小伙伴们可以参考一下

本文实例讲解了PHP图片上传并压缩的实现方法,分享给大家供大家参考,具体内容如下

使用到三个文件

connect.php:连接数据库

test_upload.php:执行SQL语句

upload_img.php:上传图片并压缩

三个文件代码如下:

连接数据库:connect.php

$db_host = '';

$db_user = '';

$db_psw = '';

$db_name = '';

$db_port = '';

$sqlconn=new mysqli($db_host,$db_user,$db_psw,$db_name);

$q="set names utf8;";

$result=$sqlconn->query($q);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

exit();

}

?>

执行SQL语句:test_upload.php

require ("connect.php");

require ("upload_img.php");

$real_img=$uploadfile;

$small_img=$uploadfile_resize;

$insert_sql = "insert into img (real_img,small_img) values (?,?)";

$result = $sqlconn -> prepare($insert_sql);

$result -> bind_param("ss", $real_img,$small_img);

$result -> execute();

?>

上传图片并压缩:upload_img.php

//设置文件保存目录

$uploaddir = "upfiles/";

//设置允许上传文件的类型

$type=array("jpg","gif","bmp","jpeg","png");

//获取文件后缀名函数

function fileext($filename)

{

return substr(strrchr($filename, '.'), 1);

}

//生成随机文件名函数

function random($length)

{

$hash = 'CR-';

$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';

$max = strlen($chars) - 1;

mt_srand((double)microtime() * 1000000);

for($i = 0; $i < $length; $i++)

{

$hash .= $chars[mt_rand(0, $max)];

}

return $hash;

}

$a=strtolower(fileext($_FILES['filename']['name']));

//判断文件类型

if(!in_array(strtolower(fileext($_FILES['filename']['name'])),$type))

{

$text=implode(",",$type);

$ret_code=3;//文件类型错误

$page_result=$text;

$retArray = array('ret_code' => $ret_code,'page_result'=>$page_result);

$retJson = json_encode($retArray);

echo $retJson;

return;

}

//生成目标文件的文件名

else

{

$filename=explode(".",$_FILES['filename']['name']);

do

{

$filename[0]=random(10); //设置随机数长度

$name=implode(".",$filename);

//$name1=$name.".Mcncc";

$uploadfile=$uploaddir.$name;

}

while(file_exists($uploadfile));

if (move_uploaded_file($_FILES['filename']['tmp_name'],$uploadfile))

{

if(is_uploaded_file($_FILES['filename']['tmp_name']))

{

$ret_code=1;//上传失败

}

else

{//上传成功

$ret_code=0;

}

}

$retArray = array('ret_code' => $ret_code);

$retJson = json_encode($retArray);

echo $retJson;

}

//压缩图片

$uploaddir_resize="upfiles_resize/";

$uploadfile_resize=$uploaddir_resize.$name;

//$pic_width_max=120;

//$pic_height_max=90;

//以上与下面段注释可以联合使用,可以使图片根据计算出来的比例压缩

$file_type=$_FILES["filename"]['type'];

function ResizeImage($uploadfile,$maxwidth,$maxheight,$name)

{

//取得当前图片大小

$width = imagesx($uploadfile);

$height = imagesy($uploadfile);

$i=0.5;

//生成缩略图的大小

if(($width > $maxwidth) || ($height > $maxheight))

{

/*

$widthratio = $maxwidth/$width;

$heightratio = $maxheight/$height;

if($widthratio < $heightratio)

{

$ratio = $widthratio;

}

else

{

$ratio = $heightratio;

}

$newwidth = $width * $ratio;

$newheight = $height * $ratio;

*/

$newwidth = $width * $i;

$newheight = $height * $i;

if(function_exists("imagecopyresampled"))

{

$uploaddir_resize = imagecreatetruecolor($newwidth, $newheight);

imagecopyresampled($uploaddir_resize, $uploadfile, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

}

else

{

$uploaddir_resize = imagecreate($newwidth, $newheight);

imagecopyresized($uploaddir_resize, $uploadfile, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

}

ImageJpeg ($uploaddir_resize,$name);

ImageDestroy ($uploaddir_resize);

}

else

{

ImageJpeg ($uploadfile,$name);

}

}

if($_FILES["filename"]['size'])

{

if($file_type == "image/pjpeg"||$file_type == "image/jpg"|$file_type == "image/jpeg")

{

//$im = imagecreatefromjpeg($_FILES[$upload_input_name]['tmp_name']);

$im = imagecreatefromjpeg($uploadfile);

}

elseif($file_type == "image/x-png")

{

//$im = imagecreatefrompng($_FILES[$upload_input_name]['tmp_name']);

$im = imagecreatefromjpeg($uploadfile);

}

elseif($file_type == "image/gif")

{

//$im = imagecreatefromgif($_FILES[$upload_input_name]['tmp_name']);

$im = imagecreatefromjpeg($uploadfile);

}

else//默认jpg

{

$im = imagecreatefromjpeg($uploadfile);

}

if($im)

{

ResizeImage($im,$pic_width_max,$pic_height_max,$uploadfile_resize);

ImageDestroy ($im);

}

}

?>

请按照现实情况更改connect.php,test_upload.php中对应的信息。

以上就是PHP实现图片上传并压缩的方法,希望对大家的学习php程序设计有所帮助

相关阅读:

PHP实现图片上传并压缩

php实现图片上传并进行替换操作

两种php实现图片上传的方法

php实现图片上传、剪切功能

php实现图片上传时添加文字和图片水印技巧

PHP AjaxForm提交图片上传并显示图片源码

PHP+iframe图片上传实现即时刷新效果

php 实现图片上添加透明度渐变的效果

PHP多图片上传类

jQuery Mobile + PHP实现文件上传

php实现从上传文件创建缩略图的方法

php实现将上传word文件转为html的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值