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 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 上传图片并压缩方法详解相关推荐
- html5七牛图片上传js,前端如何上传图片至七牛云
上传文件是我们在前端开发中经常遇到的一个问题.最近在做某项目管理后台的时候,需要将轮播图上传至七牛云.以前在Vue里面做过类似的功能,但是在Angular中使用同样的方法发现行不通. 此篇文章主要介绍 ...
- 一般网站上传图片的大小是多少?网站图片上传格式大小建议 附带简单修图方法
一般网站上传图片的大小是多少呢?尚网汇智给您列一下网站图片上传格式大小建议: 首先,上传图片格式: 通常图片以JPG图片居多,JPG格式的图片较小,图片也比较柔和 不过特殊情况就要用特殊格式的图片了 ...
- dede图片上传php,dedecms后台上传图片怎么实现图片轮播
dedecms后台上传图片怎么实现图片轮播? 用dedecms套网站已经做了几个了,但图片轮播始终是用手工改代码.今天研究了一下在后台上传图片来实现图片轮播的. 推荐学习:织梦cms 首先那当然是设置 ...
- PHP实现文件上传和下载超完整实例源码(详解)
1.效果图 2.首先是封装好的图片类(缩放及生成水印) (1)GDBasic.php <?php/** * GDBasic.php * description GD基础类 */ namespac ...
- java 移动页面中的图片上传_移动端上传图片(ajax跨域请求)
第一次写项目开发经验,望担待. 除了前端以外的事就不叨叨了,下面开始弄干活(两个页面首页.列表页). 项目 开发简述 项目需求:上传图片并展示. 项目地址:项目的链接地址 开发工具:sublime 后 ...
- jsp 图片上传到oracle,jsp上传图片到数据库(oracle),并能在页面上显示解决办法
jsp上传图片到数据库(oracle),并能在页面上显示解决办法 jsp上传图片到数据库(oracle),并能在页面上显示解决办法 日期:2014-05-18 浏览次数:20341 次 jsp上传图片 ...
- mvc ajax图片上传,MVC 通过ajaxSubmit上传图片并显示
js代码 function submitform() { $("#form_upload").ajaxSubmit({ success: showResponse }); } fu ...
- 论坛php 图片上传,Discuz! X3 论坛文件图片上传尺寸:小于2M的修改方法
相信很多人都在使用Discuz! X3 论坛程序,笔者最近也用Discuz! X3.2 开办了一个论坛,但是当用户上传文件时,总是提示:文件尺寸 小于2M,于是就去后台修改相应的设置,但是改来改去,一 ...
- 把本地项目上传到码云的整个过程(图文详解)
第一步 我们现在码云的个人首页点击创建仓库并根据要求填写相关信息 如下图所示: 点击创建,出现以下的页面,就代表码云上的项目创建完成了. 第二步 我们把创建仓库产生的README.en.md和READ ...
- idea通过svn上传_SVN客户端使用(Windows)图文详解
SVN库创建完成后,通过SVN客户端来上传和获取相应资源. SVN客户端提供如下功能: 01客户端的安装 运行TortoiseSVN程序,点击"Next"下是的截图顺序即为安装步骤 ...
最新文章
- MyEclipse快捷键
- JMeter的目录结构
- base64图片保存获取本地路径
- 微信消息提醒与消息数字提示之BadgeView
- 揭秘Product Hunt怎样运用邮件崛起
- 简单-三层-存储过程-增删改《一》
- 明星AI芯片公司Graphcore获红杉5000万美元投资
- sql 联合_SQL联合,SQL联合全部
- CENTOS 使用 MUTT发送邮件
- 基于sklearn的分类器实战
- 如何将Eclipse设置为中文简体
- c语言程序谭浩强第二章,PDF版本_谭浩强c语言程序设计. 第二章 程序的灵魂-算法...
- 计算机数据库技术的应用现状,计算机数据库技术的发展及应用
- 统计分类分为描述性统计_了解描述性统计
- 火狐浏览器快速代理插件(FoxyProxy Standard)
- vue+websocket+nodejs实现聊天室 -一对多、一对一聊天
- OpenCV空间人工智能竞赛:第一部分
- “不靠谱“的布隆过滤器是怎么成为大数据世界中的韦小宝的?
- 鸿蒙OS平板界面,华为鸿蒙OS平板操作界面曝光,华为MatePad Pro2,搭载麒麟9000
- Java中哈希值是怎么算的
热门文章
- 统计学基础学习笔记:描述统计量
- Java讲课笔记08:数组
- 大数据学习笔记45:Sqoop - 数据迁移工具
- 大数据学习笔记17:MR案例——分区统计总利润与平均利润
- 【BZOJ3191】卡牌游戏,概率DP
- 【BZOJ3223】文艺平衡树,Splay反转区间
- 湖北工程学院计算机宿舍,湖北工程学院宿舍条件,宿舍环境图片(10篇)
- vs该文件没有与之关联的应用来执行该操作_Hadoop大数据实战系列文章之Zookeeper...
- iterm2自动补全_【超级实用】Iterm2 + ohmyzsh 打造强大的终端编辑器
- bzoj1051 受欢迎的牛 结论+tarjan