简化版 分站 地图 日历 影视
计算器 行情 加解密 长度 面积
首页 软件 编程 笑话 知识 公告 注册 登录 用QQ登录本站
 
您现在的位置:首页 >> PHP >> 内容

PHP接收并压缩图片(路径存入数据库)

内容摘要:使用到三个文件connect.php:连接数据库用test_upload.php:执行SQL语句用upload_img.php:上传图片并压缩用三个文件代码如下:connect.php?php$db_host = '';$db_user = '';$db_psw = '';$db_name = '';$db_port = '';$sqlconn=new my......

  使用到三个文件


connect.php:连接数据库用

test_upload.php:执行SQL语句用

upload_img.php:上传图片并压缩用

三个文件代码如下:


connect.php


<?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();

}

?>

test_upload.php


<?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


<?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);

}

}

?>

  版权声明:本内容来源于互联网,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。


发布日期:2019/7/3 发布时间:15:48:21 点击:1039 
  • 上一篇:php两点地理坐标距离的计算方法
  • 下一篇:PHP 验证日期格式
  • 本类新增
    本类热门文章
    Baidu
    壹 家 软 件 工 作 室(YiJia SoftWare Workroom) 齐天大圣® 制 作 ©2000-2019

    本空间由景安网络提供,百度云加速提供加速防护
    YiJiaCMS V3.15 Build 19.9.18(MSSQL) 闽ICP备05000814号-1