当前位置:首页 » 文件管理 » php图片压缩上传

php图片压缩上传

发布时间: 2022-03-31 22:37:12

‘壹’ php怎么在上传之前压缩图片

远标老师教我们用fireworks优化下图片,用最高品质jpg就可以.优化后再上传就可以了

‘贰’ php图片上传能用代码压缩图片文件的大小吗

图片的格式是多变的,但是压缩图片的方式不变,压缩软件压缩图片一致都是那样,我将操作步骤写下来了,楼主可以看看
1、安装相对应的辅助工具(迅捷图片压缩软件)运行工具;

2、打开工具,看到页面上的图片压缩选项,点击这个蓝色的按钮进入将要实行操作的页面。

3、在页面上点击选择文件按钮,或是选择文件夹按钮,都可以将存放图片文件的文件夹打开,然后对图片进行选择。

4、选择文件时我们按住多选键Ctrl,选择我们需要压缩的图片添加到页面中间的位置。

5、做到这一步了,下面我们可以对压缩图片的压缩选项做一个选择,可以转换图片的格式,转化为png或者是jpg,将图片压缩可以选择的压缩选项如下。

6、将所有的参数设置完成之后我们点击页面上的“开始压缩按钮就可以进行压缩了。

日常使用的压缩图片的办法是将图片压缩为压缩包,在使用是还要对其解压才能使用,这种压缩方法压缩图片不同点在于不会将图片文件压缩为压缩包,能将图片最大限度的缩小,图片的状态不会改变。

‘叁’ PHP网站上传图片自动压缩,怎么编程啊,求指

这里会使用到三个文件:

  • connect.php:连接数据库

  • test_upload.php:执行sql语句

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

三个文件代码如下:
连接数据库:connect.php

<?php
$db_host='';
$db_user='';
$db_psw='';
$db_name='';
$db_port='';
$sqlconn=newmysqli($db_host,$db_user,$db_psw,$db_name);
$q="setnamesutf8;";
$result=$sqlconn->query($q);
if(mysqli_connect_errno()){
printf("Connectfailed:%s ",mysqli_connect_error());
exit();
}
?>

当然使用一些封装的数据库类也是可以的。

执行SQL语句:test_upload.php

<?php
require("connect.php");
require("upload_img.php");
$real_img=$uploadfile;
$small_img=$uploadfile_resize;
$insert_sql="insertintoimg(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");

//获取文件后缀名函数
functionfileext($filename)
{
returnsubstr(strrchr($filename,'.'),1);
}

//生成随机文件名函数
functionrandom($length)
{
$hash='CR-';
$chars='';
$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'];

functionResizeImage($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("imageresampled"))
{
$uploaddir_resize=imagecreatetruecolor($newwidth,$newheight);
imageresampled($uploaddir_resize,$uploadfile,0,0,0,0,$newwidth,$newheight,$width,$height);
}
else
{
$uploaddir_resize=imagecreate($newwidth,$newheight);
imageresized($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图片上传后被压缩了,变得不清晰了,怎么解决

如果清晰的上传后,不清晰,,那就是设置的压缩质量问题,,,如果是不清晰上传了,这肯定不会清晰了。。。

找到上传的设置里可以找到图片压缩比例。。。。

‘伍’ ThinkPHP 上传图片压缩原图片

来直接上代码,基本上能懂!

上传+压缩

‘陆’ 如何利用php把上传的图片压缩

<?php
//Thefile
$filename='test.jpg';
$percent=0.5;

//Contenttype
header('Content-Type:image/jpeg');

//Getnewdimensions
list($width,$height)=getimagesize($filename);
$new_width=$width*$percent;
$new_height=$height*$percent;

//Resample
$image_p=imagecreatetruecolor($new_width,$new_height);
$image=imagecreatefromjpeg($filename);
imageresampled($image_p,$image,0,0,0,0,$new_width,$new_height,$width,$height);

//Output
imagejpeg($image_p,null,100);
?>

http://php.net/manual/en/function.imageresampled.php

‘柒’ php图片上传到服务器指定路径,并且图片压缩成70*95大小代码!

<?
$path='img/';//路径
$phtypes=array(
'img/gif',
'img/jpg',
'img/jpeg',
'img/bmp',
'img/pjpeg',
'img/x-png'
);
?>
<html><body>
<form method="post" enctype="multipart/form-data" name="form1">
<table>
<tr><td>上传图片</td></tr>
<tr><td><input type="file" name="photo" size="20" /></td></tr>
<tr><td><input type="submit" value="上传"/></td></tr>
</table>
允许上传的文件类型为:<?=implode(', ',$phtypes)?></form>
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){

if (!is_uploaded_file($_FILES["photo"][tmp_name])){
echo "图片不存在";
exit();
}

if(!is_dir('img')){//路径若不存在则创建
mkdir('img');
}

$upfile=$_FILES["photo"];
$pinfo=pathinfo($upfile["name"]);
$name=$pinfo['basename'];//文件名
$tmp_name=$upfile["tmp_name"];
$file_type=$pinfo['extension'];//获得文件类型
$showphpath=$path.$name;

if(in_array($upfile["type"],$phtypes)){
echo "文件类型不符!";
exit();
}
if(move_uploaded_file($tmp_name,$path.$name)){
echo "成功!";
}
echo "<img src=\"".$showphpath."\" hight=\"70\" width=\"95\" />";
}
?>
</body>
</html>

‘捌’ php如何上传一个压缩文件

<formenctype="multipart/form-data"action="singleupload.php"method="post">
<inputtype="hidden"name="MAX_FILE_SIZE"value="2000000">
<inputtype=filename=upfilesize=20>
<inputtype=submitvalue="上传文件">
</form>
if(move_uploaded_file($_FILES['upfile']['tmp_name'],$_FILES['upfile']['name'])){
echo"<h2><fontcolor=#ff0000>文件上传成功!</font></h2><br><br>";
}else{
echo"<h2><fontcolor=#ff0000>文件上传失败!</font></h2><br><br>";
}

‘玖’ php 怎么压缩图片后 在发给前端

<?php
/*
----------------------------------------------------------------------
函数:调整图片尺寸或生成缩略图
返回:True/False
参数:
$Image需要调整的图片(含路径)
$Dw=450调整时最大宽度;缩略图时的绝对宽度
$Dh=450调整时最大高度;缩略图时的绝对高度
$Type=11,调整尺寸;2,生成缩略图
$path='img/';//路径
$phtypes=array(
'img/gif',
'img/jpg',
'img/jpeg',
'img/bmp',
'img/pjpeg',
'img/x-png'
);
FunctionImg($Image,$Dw=450,$Dh=450,$Type=1){
IF(!File_Exists($Image)){
ReturnFalse;
}
//如果需要生成缩略图,则将原图拷贝一下重新给$Image赋值
IF($Type!=1){
Copy($Image,Str_Replace(".","_x.",$Image));
$Image=Str_Replace(".","_x.",$Image);
}
//取得文件的类型,根据不同的类型建立不同的对象
$ImgInfo=GetImageSize($Image);
Switch($ImgInfo[2]){
Case1:
$Img=@ImageCreateFromGIF($Image);
Break;
Case2:
$Img=@ImageCreateFromJPEG($Image);
Break;
Case3:
$Img=@ImageCreateFromPNG($Image);
Break;
}
//如果对象没有创建成功,则说明非图片文件
IF(Empty($Img)){
//如果是生成缩略图的时候出错,则需要删掉已经复制的文件
IF($Type!=1){Unlink($Image);}
ReturnFalse;
}
//如果是执行调整尺寸操作则
IF($Type==1){
$w=ImagesX($Img);
$h=ImagesY($Img);
$width=$w;
$height=$h;
IF($width>$Dw){
$Par=$Dw/$width;
$width=$Dw;
$height=$height*$Par;
IF($height>$Dh){
$Par=$Dh/$height;
$height=$Dh;
$width=$width*$Par;
}
}ElseIF($height>$Dh){
$Par=$Dh/$height;
$height=$Dh;
$width=$width*$Par;
IF($width>$Dw){
$Par=$Dw/$width;
$width=$Dw;
$height=$height*$Par;
}
}Else{
$width=$width;
$height=$height;
}
$nImg=ImageCreateTrueColor($width,$height);//新建一个真彩色画布
ImageCopyReSampled($nImg,$Img,0,0,0,0,$width,$height,$w,$h);//重采样拷贝部分图像并调整大小
ImageJpeg($nImg,$Image);//以JPEG格式将图像输出到浏览器或文件
ReturnTrue;
//如果是执行生成缩略图操作则
}Else{
$w=ImagesX($Img);
$h=ImagesY($Img);
$width=$w;
$height=$h;
$nImg=ImageCreateTrueColor($Dw,$Dh);
IF($h/$w>$Dh/$Dw){//高比较大
$width=$Dw;
$height=$h*$Dw/$w;
$IntNH=$height-$Dh;
ImageCopyReSampled($nImg,$Img,0,-$IntNH/1.8,0,0,$Dw,$height,$w,$h);
}Else{//宽比较大
$height=$Dh;
$width=$w*$Dh/$h;
$IntNW=$width-$Dw;
ImageCopyReSampled($nImg,$Img,-$IntNW/1.8,0,0,0,$width,$Dh,$w,$h);
}
ImageJpeg($nImg,$Image);
ReturnTrue;
}
}
?>
<html><body>
<formmethod="post"enctype="multipart/form-data"name="form1">
<table>
<tr><td>上传图片</td></tr>
<tr><td><inputtype="file"name="photo"size="20"/></td></tr>
<tr><td><inputtype="submit"value="上传"/></td></tr>
</table>
允许上传的文件类型为:<?=implode(',',$phtypes)?></form>
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
if(!is_uploaded_file($_FILES["photo"][tmp_name])){
echo"图片不存在";
exit();
}
if(!is_dir('img')){//路径若不存在则创建
mkdir('img');
}
$upfile=$_FILES["photo"];
$pinfo=pathinfo($upfile["name"]);
$name=$pinfo['basename'];//文件名
$tmp_name=$upfile["tmp_name"];
$file_type=$pinfo['extension'];//获得文件类型
$showphpath=$path.$name;

if(in_array($upfile["type"],$phtypes)){
echo"文件类型不符!";
exit();
}
if(move_uploaded_file($tmp_name,$path.$name)){
echo"成功!";
Img($showphpath,100,800,2);
}
echo"<imgsrc="".$showphpath.""/>";
}
?>
</body>
</html>

热点内容
优学派安卓系统密码是多少 发布:2024-10-31 15:20:55 浏览:731
go编译库 发布:2024-10-31 15:02:13 浏览:14
百度云服务器购买 发布:2024-10-31 14:55:14 浏览:199
价值规律如何配置 发布:2024-10-31 14:48:24 浏览:718
安卓厂商担心什么 发布:2024-10-31 14:48:15 浏览:910
怎么释放电脑缓存 发布:2024-10-31 14:45:22 浏览:985
ftp上传到服务器 发布:2024-10-31 14:44:56 浏览:778
辽宁群控服务器系统云主机 发布:2024-10-31 14:43:16 浏览:423
安卓手机如何打开zip文件 发布:2024-10-31 14:41:52 浏览:634
php获取表单提交 发布:2024-10-31 14:35:55 浏览:109