使用到三个文件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<?phprequire  ("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

{

$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

{

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

}

} ?>

php多图片上传并压缩,PHP 上传图片并压缩方法详解相关推荐

  1. html5七牛图片上传js,前端如何上传图片至七牛云

    上传文件是我们在前端开发中经常遇到的一个问题.最近在做某项目管理后台的时候,需要将轮播图上传至七牛云.以前在Vue里面做过类似的功能,但是在Angular中使用同样的方法发现行不通. 此篇文章主要介绍 ...

  2. 一般网站上传图片的大小是多少?网站图片上传格式大小建议 附带简单修图方法

    一般网站上传图片的大小是多少呢?尚网汇智给您列一下网站图片上传格式大小建议: 首先,上传图片格式: 通常图片以JPG图片居多,JPG格式的图片较小,图片也比较柔和 不过特殊情况就要用特殊格式的图片了 ...

  3. dede图片上传php,dedecms后台上传图片怎么实现图片轮播

    dedecms后台上传图片怎么实现图片轮播? 用dedecms套网站已经做了几个了,但图片轮播始终是用手工改代码.今天研究了一下在后台上传图片来实现图片轮播的. 推荐学习:织梦cms 首先那当然是设置 ...

  4. PHP实现文件上传和下载超完整实例源码(详解)

    1.效果图 2.首先是封装好的图片类(缩放及生成水印) (1)GDBasic.php <?php/** * GDBasic.php * description GD基础类 */ namespac ...

  5. java 移动页面中的图片上传_移动端上传图片(ajax跨域请求)

    第一次写项目开发经验,望担待. 除了前端以外的事就不叨叨了,下面开始弄干活(两个页面首页.列表页). 项目 开发简述 项目需求:上传图片并展示. 项目地址:项目的链接地址 开发工具:sublime 后 ...

  6. jsp 图片上传到oracle,jsp上传图片到数据库(oracle),并能在页面上显示解决办法

    jsp上传图片到数据库(oracle),并能在页面上显示解决办法 jsp上传图片到数据库(oracle),并能在页面上显示解决办法 日期:2014-05-18 浏览次数:20341 次 jsp上传图片 ...

  7. mvc ajax图片上传,MVC 通过ajaxSubmit上传图片并显示

    js代码 function submitform() { $("#form_upload").ajaxSubmit({ success: showResponse }); } fu ...

  8. 论坛php 图片上传,Discuz! X3 论坛文件图片上传尺寸:小于2M的修改方法

    相信很多人都在使用Discuz! X3 论坛程序,笔者最近也用Discuz! X3.2 开办了一个论坛,但是当用户上传文件时,总是提示:文件尺寸 小于2M,于是就去后台修改相应的设置,但是改来改去,一 ...

  9. 把本地项目上传到码云的整个过程(图文详解)

    第一步 我们现在码云的个人首页点击创建仓库并根据要求填写相关信息 如下图所示: 点击创建,出现以下的页面,就代表码云上的项目创建完成了. 第二步 我们把创建仓库产生的README.en.md和READ ...

  10. idea通过svn上传_SVN客户端使用(Windows)图文详解

    SVN库创建完成后,通过SVN客户端来上传和获取相应资源. SVN客户端提供如下功能: 01客户端的安装 运行TortoiseSVN程序,点击"Next"下是的截图顺序即为安装步骤 ...

最新文章

  1. MyEclipse快捷键
  2. JMeter的目录结构
  3. base64图片保存获取本地路径
  4. 微信消息提醒与消息数字提示之BadgeView
  5. 揭秘Product Hunt怎样运用邮件崛起
  6. 简单-三层-存储过程-增删改《一》
  7. 明星AI芯片公司Graphcore获红杉5000万美元投资
  8. sql 联合_SQL联合,SQL联合全部
  9. CENTOS 使用 MUTT发送邮件
  10. 基于sklearn的分类器实战
  11. 如何将Eclipse设置为中文简体
  12. c语言程序谭浩强第二章,PDF版本_谭浩强c语言程序设计. 第二章 程序的灵魂-算法...
  13. 计算机数据库技术的应用现状,计算机数据库技术的发展及应用
  14. 统计分类分为描述性统计_了解描述性统计
  15. 火狐浏览器快速代理插件(FoxyProxy Standard)
  16. vue+websocket+nodejs实现聊天室 -一对多、一对一聊天
  17. OpenCV空间人工智能竞赛:第一部分
  18. “不靠谱“的布隆过滤器是怎么成为大数据世界中的韦小宝的?
  19. 鸿蒙OS平板界面,华为鸿蒙OS平板操作界面曝光,华为MatePad Pro2,搭载麒麟9000
  20. Java中哈希值是怎么算的

热门文章

  1. 统计学基础学习笔记:描述统计量
  2. Java讲课笔记08:数组
  3. 大数据学习笔记45:Sqoop - 数据迁移工具
  4. 大数据学习笔记17:MR案例——分区统计总利润与平均利润
  5. 【BZOJ3191】卡牌游戏,概率DP
  6. 【BZOJ3223】文艺平衡树,Splay反转区间
  7. 湖北工程学院计算机宿舍,湖北工程学院宿舍条件,宿舍环境图片(10篇)
  8. vs该文件没有与之关联的应用来执行该操作_Hadoop大数据实战系列文章之Zookeeper...
  9. iterm2自动补全_【超级实用】Iterm2 + ohmyzsh 打造强大的终端编辑器
  10. bzoj1051 受欢迎的牛 结论+tarjan