php图片上传并生成缩略图

php 上传图片生成缩略图 php 上传图片生成缩略图 在PHP中获取EXIF信息应用EXIF函数库中的函数。首先,应该确定EXIF函数是否已经加载,在php.ini文件中查看“extension=php_exif.dll”前是否有分号“;”,如果有则说明未加载,那么就要去掉分号。 同时还要注意“extension=php_exif.dll”项的存储位置,它必须放置在“extension=php_mbstring.dll”项之后,否则EXIF函数是不被支持的。设置完成后保存php.ini文件,并重新启动Apache服务器。 立即下载

在生成图片的缩略图,比如宽和高的比例时,可以自由修改。这个类可用于配合前段的iframe表单元素,生成无刷新的上传图片,并在前段指定区域立即显示的效果。其实还可以再加一个属性,把任何服务器错误都替换成一个更加友好的提示信息并返回给前段

<?php 
require_once "sql.tool.php";
class Picture
{
	//上传文件
	private $upfile;
	//保存后的源文件
	private $img;
	//上传文件的类型
	private $fileType;
	//上传图片保存的路径
	private $path;
	//上传图片的名字
	private $fname;
	//缩略图的宽度
	private $width;
	//缩略图的高度
	private $height;
	
	//错误信息
	private $noticeMsg=null;
	private $sql;
	public function __construct($upfile)
	{
		$config = require "config.php";
		$this->width=$config['image']['width'];
		$this->height=$config['image']['height'];
		if(is_uploaded_file($upfile['tmp_name']))
		{
			$this->upfile = $upfile;
		}
		else
		{
			$this->noticeMsg = '非法文件';
		}
		$this->sql = new Sql();
		$this->moveFile();
		$this->zoomInPic();
		echo "<script> parent.document.getElementById('feedback').innerHTML='{$this->noticeMsg}'</script>";
	}
	private function checkFilesStatus()
	{
		//上传失败,分析原因
		if($this->upfile['error']>0)
		{
			switch($this->upfile['error'])
			{
				case 1:
					//超过表单定义的MAX_FILE_SIZE
					$this->noticeMsg = '文件太大';
					break;
				case 2:
					//超过系统定义,php.ini中设定的
					$this->noticeMsg = '文件太大';
					break;
				case 3:
					$this->noticeMsg = '文件不完整';
					break;
				case 4:
					$this->noticeMsg = '文件为空';
					break;
			}
			return 0;
		}
		else
		{//上传成功
			$this->noticeMsg = '上传成功';
			return 1;
		}
	}
	//检测上传文件类型
	private function checkFileType()
	{
		$fileType = strtolower(substr(strchr($this->upfile['name'],'.'),1));
		$this->fileType = $fileType;
		$defaultType=array('jpg', 'jpeg', 'png', 'gif');
		if(!in_array($fileType, $defaultType)) 
		{
			$this->noticeMsg='文件类型不对';
			return 0;
		}
		return 1;
	}
	//保存上传文件
	private function moveFile()
	{
		if($this->checkFilesStatus() && $this->checkFileType())
		{
			$dirName = './upload/'.date("Ymd");
			if(!is_dir($dirName))
			{	
				mkdir($dirName,0777, true);
			}
			$toFileName = $dirName."/".time().mt_rand(1,500).$this->upfile['name'];
			$this->path = $dirName;
			if(!move_uploaded_file($this->upfile['tmp_name'], $toFileName)) 
			{
				die('移动文件失败');//系统错误
			}
			else
			{
				$this->img = $toFileName;
			}
		}
	}
	private function fileName()
	{
		$fname = basename($this->upfile['name'], strchr($this->upfile['name'], '.'));
		$this->fname = time().mt_rand(1,500).$fname.'small';
	}
	//生成图片缩略图
	private function zoomInPic()
	{
		$src;
		$this->fileName();
		switch($this->fileType)
		{
			case 'jpg':
			case 'jpeg':
				$src = imagecreatefromjpeg($this->img);
				break;
			case 'gif':
				$src = imagecreatefromgif($this->img);
				break;
			case 'png':
				$src = imagecreatefrompng($this->img);
				break;
			
		}
		//获取上传图片的宽和高
		$src_w = imagesx($src);
		$src_h = imagesy($src);
		//生成缩略图
		//在属性里定义缩略图的宽和高,并将原图按照比例缩放
		//缩放算法是: 新宽/原宽 = 新高/原高,这样就能等比例缩放了.....
		/* if($src_w > $src_h)
		{
			$new_w = $this->width;
			$new_h = ceil(($this->width/$src_w)*$src_h);
		}
		else
		{
			$new_h = $this->height;
			$new_w = ceil(($this->height/$src_h)*$src_w);
		} */
		$new_h = $this->height;
		$new_w = ceil(($this->height/$src_h)*$src_w);
		
		$paint = imagecreatetruecolor($new_w, $new_h);
		imagecopyresampled($paint, $src, 0,0,0,0, $new_w, $new_h, $src_w, $src_h);
		//在原图上保存缩略图
		switch($this->fileType)
		{
			case 'jpg':
			case 'jpeg':
				$src = imagejpeg($paint, $this->path.'/'.$this->fname.'.'.$this->fileType);
				break;
			case 'gif':
				$src = imagegif($paint, $this->path.'/'.$this->fname.'.'.$this->fileType);
				break;
			case 'png':
				$src = imagepng($paint, $this->path.'/'.$this->fname.'.'.$this->fileType);
				break;
		}
		//释放资源
		imagedestroy($paint);
		sleep(2);
		unlink($this->img);
		//因为返回的是img链接资源,所以可以省略HEADER头部
		$this->noticeMsg="<img src=".$this->path.'/'.$this->fname.'.'.$this->fileType.">";
		$sources = $this->path.'/'.$this->fname.'.'.$this->fileType;
		$this->sql->setImage("$sources");
	}
	
}

?>


机器学习篇-KNN算法实现鸢尾花模型和手写数字识别模型 一个样本最相似的k个样本中的大多数属于某一个类别, 则该样本也属于这个类别类似于: 近朱者赤近墨者黑回归机器建模流程:数据获取数据基本处理(空值和非法值)特征工程(特征提取, 特征预处理(归一化, 标准化), 特征降维, 特征选择, 特征组合)模型训练模型预测模型评估# 1. 定义函数 dm01_load_iris(), 用于加载 鸢尾花数据集, 并简单查看下数据集的各部分.# 1. 加载数据集.​# 2. 打印iris_data, 发现其实是1个: 字典.​。 阅读详情

相关推荐

蓝桥杯算法:打印图形——六芒星

【输入格式】 输入一行包含一个整数 n。 【输出格式】 输出一个六芒星,表示满足题意的图形。 【样例输入】 3 4 【样例输出】 【评测用例规模与约定】 对于所有评测用例,1 ≤ n ≤ 20。 总结: 第一次做图形题,做了蛮久,图形题有很多的方式去完成,它考验的是你能不能找到更简单的那一种方式. 我初看到这个图形,第一种想法是把这个六芒星当做六个小三角形来做,然后以某种规则排列一下,就能做出来,但是尝试了一下感觉太麻烦了。 然后我的第二种想法是,这个图形是对称图形,怎么能写出一半吗? 这样另一半想办

KeepCodeing 3835

php图片生成缩略图_使用PHP生成图片的缩略图的方法

功能:支持jpg,jpeg,gif,png,bmp图片格式,支持按原图片的比例进行缩放,可以选择在图片缩放的过程中是否需要对图片进行裁切,加入了图片质量控制,可以实现缩略图片质量最高化。完整类的代码如下:/*** 功能:php生成缩略图片的类*/class ResizeImage{public $type;//图片类型public $width;//实际宽度public $height;//实际高...

weixin_36001196的博客 477

逆向工程实战:如何一步步破解京东APP的sign签名算法(附Frida脚本)

本文详细解析了京东APP的sign签名算法逆向工程实战,通过Frida脚本动态分析Java层和Native层的多层签名机制,揭示商业应用的加密协议设计。文章提供了完整的逆向工程方法论与工具链,帮助开发者深入理解移动应用安全防护体系,提升安全防御能力。

weixin_28622215的博客 918

php 上传图片并生成缩略图,php 上传图片并生成缩略图

if ($_FILES[‘file‘][‘error‘] == 0) {$MAX_FILE_SIZE = 300000;if ($_FILES[‘file‘][‘size‘] > $MAX_FILE_SIZE) {exit(‘文件超出指定大小‘);}$allowSuffix = [‘jpg‘, ‘png‘, ‘jpeg‘];$myImg = explode(‘.‘, $_FILES[‘fil...

weixin_29475313的博客 304

零基础玩转STM32CubeIDE LL库:5分钟搞定串口通信(附完整代码)

本文为零基础开发者提供了一份STM32CubeIDE LL库串口通信的快速实战指南。通过CubeMX配置、LL库核心API详解,以及中断接收与环形缓冲区的完整代码实现,帮助读者在5分钟内搭建稳定可靠的串口收发框架,解决从HAL切换到LL库的常见困惑,提升嵌入式开发效率。

weixin_29159441的博客 306

TransUnet官方代码训练自己数据集(彩色RGB3通道图像的分割)

官方代码:https://github.com/Beckschen/TransUNet 目的:训练5个类别的汽车部件分割任务(测试在另一篇博客中) 实现效果: 1. github下载代码,并解压。 项目里的文件可能跟你下载的不一样,不急后面会讲到! 2. 配置数据集(尽最大努力还原官方数据集的格式)。 通常自己手上的数据集分images和labels文件夹,分别存放着原始图像和对应的mask图像,如下图所示; mask图像中的像素有0,1,2,3,4 分别代表背景,车身,轮子,车灯,窗户,一共五个

qq_37652891的博客 5万+

PHP实现图像上传并生成缩略图

图片上传                 uploadpic.php   $uptypes= array(        ‘image/jpg’,        ‘image/jpeg’,        ‘image/pjpeg’ )   $file= $_FILES[“uppic”]; if($files[“size”]   $f

wangmin_12的专栏 937

基于STM32设计的智能水产养殖系统(华为云IOT)(152)

当前设计的智能水产养殖系统主控芯片采用STM32F103RCT6,可以实现对水位、水温、水混浊度和PH值等参数的监测和控制,并且支持定时投喂功能。通过连接华为云物联网平台,将传感器数据上传到服务器,并通过Qt设计的Android手机APP来获取设备上传的数据,从而实现对养殖环境的远程监测和控制。

8828

PHP生成图片缩略图,并在浏览器中显示,灵活,实用

由于个人需要上传图片至网站相册,并以缩略图的形式显示,百度了很多源码屡试屡败,自己写了一个函数,已成功运行。缩略图在浏览器中的显示方法是将图片的 src 地址指向一个PHP文件,来调用此函数即可显示。 /** * _thumb()生成缩略图的函数 */ function _thumb($_filename,$_max_size){ //(图片源地址,最大宽or高) //获取文件后缀

DarrenDavid的博客 1129

YOLOv11缝合添加注意力机制:添加YOLO-Face的SEAM到并行通道空间注意力机制【附代码】

在目标检测的实际应用中,物体遮挡是一个严重影响检测精度的难点。本文将基于YOLOv11架构,探索融合YOLO-Face中提出的SEAM注意力机制以提升对遮挡物体的感知能力,并在此基础上提出一种轻量化双路径并行注意力机制C2PSA,进一步提升检测性能。

一键难忘的博客 1527

【护网必备】Windows平台shellcode免杀加载器

bypass:McAfee、金山(数字签名)、火绒、ESET、卡巴企业版(时间5s 抖动50 Sleep_mask)、360全家桶(物理机)、Norton(加白程序资源)、WDF(PC)、WDF(Server)、Symantec(加白程序资源)bypass:金山(数字签名)、火绒、ESET、360全家桶(物理机)、WDF(PC)、WDF(服务器提示复查(关云保护))、McAfee、Norton(加白程序资源)、卡巴企业版(时间5s 抖动50 Sleep_mask)必须使用Bof操作,shell运行就掉线。

Fly_鹏程万里 1186

php图片生成缩略图_PHP图片上传,并生成缩略图保存

HTML表单上传:PHP接收处理upload.php// 文件及缩放尺寸$imgfile = 'a.jpg';//这可以读取刚上传的文件$percent = 0.5;//以原图片的长宽的0.1百分比为新的长宽来创建新的图片此图片的标志为$image_plist($width, $height) = getimagesize($imgfile);$newwidth = $width * $perce...

weixin_28880469的博客 310

C语言程序设计——单词的统计和替换

【任务描述】 对任意一篇英文文章,统计其中每个单词分别出现了多少次,并可替换指定的单词。⑶ 对单词进行替换时,允许用户选择全部替换或逐个替换。替换完成后,将文章保存到文件。⑴ 英文文章以文件形式输入。⑵ 统计的结果保存到文件。

m0_60738889的博客 810

php 上传图片并生成缩略图,PHP 图片上传类并生成缩略图

/*** 上传图片*/class imgUpload{static protected $a;protected $formName; //表单名称protected $directory; //文件上传至目录protected $maxSize; //最大文件上传大小protected $canUpload; //是否可以上...

weixin_33344147的博客 287

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

php 图片上传函数,PHP图片上传并生成缩略图函数

自己写的 PHP图片上传并生成缩略图函数请参考函数分为三部分一、PHP 图片上传函数二、PHP 生成缩略图函数三、PHP消息提示函数//PHP 图片上传函数如下:function img_upload($form_name,$size,$dir,$file_name,$width,$height){?//文件域名称,文件大小限制,文件存放路径,缩略图宽度,缩略图高度?$file_type_arr=...

weixin_36176546的博客 224

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

php 上传图片并生成缩略图,php 图片上传并生成缩略图代码

本代码的功能是把你要上传的图片保存到服务器,然后再把当前图重按比例生成一个小的缩略图哦。if($_FILES['image']['size']){if($_FILES['image']['type'] == "image/pjpeg"){$im = @imagecreatefromjpeg($_FILES['image']['tmp_name']);$n_bmp.='.jpg';}elseif($...

weixin_39881513的博客 201

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

php 论坛图片发表,PHP 图片上传并生成缩略图类

/*** 上传图片*/class imgUpload{static protected $a;protected $formName; //表单名称protected $directory; //文件上传至目录protected $maxSize; //最大文件上传大小protected $canUpload; //是否可以上...

weixin_42134285的博客 131

Php传图缩图,php图片上传并生成缩略图

在生成图片的缩略图,比如宽和高的比例时,可以自由修改。这个类可用于配合前段的iframe表单元素,生成无刷新的上传图片,并在前段指定区域立即显示的效果。其实还可以再加一个属性,把任何服务器错误都替换成一个更加友好的提示信息并返回给前段require_once "sql.tool.php";class Picture{//上传文件private $upfile;//保存后的源文件private $i...

weixin_30728435的博客 342

php上传生成图片,PHP 实现图片上传并生成缩略图示例

搜索热词一个比较简单的PHP生成缩略图程序,参数及代码都算得上精简。 经测试代码如下:$FILENAME = "image_name";// 生成图片的宽度$RESIZEWIDTH = 400;// 生成图片的高度$RESIZEHEIGHT = 400;function ResizeImage($im,$maxwidth,$maxheight,$name){$width = imagesx($im...

weixin_29306011的博客 439

php+vuejs+jquery实现ajax批量图片上传并生成缩略图

提供一个在线测试的地址:http://ctyblog.uphero.com/ajax_upload/index.php 首先我们来看一下最终成果的gif图,有目标才有动力嘛 首先,界面使用bootstap3 进行简单的搭建,页面渲染由vue进行,数据有php生成 ...

chili9370的博客 443

php上传生成图片,PHP实现图片上传并生成缩略图

两种上传图片的方法都已经验证首先index.htmlTitle请选择您要上传的文件:action.phpheader('content-type:text/html;charset=utf-8');require_once 'upload.php';$u=new upload('myFile1','500000','upload');$a=$u->uploads();$c=$u->Sm...

weixin_36079387的博客 378

php 上传图片并生成缩略图,php实现图片上传并利用ImageMagick生成缩略图

// Location to upload main image:$mainDir = $_SERVER['DOCUMENT_ROOT'].'/images/l/';// Location to create the thumb image:$smalDir = $_SERVER['DOCUMENT_ROOT'].'/images/s/';// Command to use:$command = ...

weixin_39958559的博客 149

php 上传 缩略图,php 图片上传并生成缩略图代码

本代码的功能是把你要上传的图片保存到服务器,然后再把当前图重按比例生成一个小的缩略图哦。if($_FILES['image']['size']){if($_FILES['image']['type'] == "image/pjpeg"){$im = @imagecreatefromjpeg($_FILES['image']['tmp_name']);$n_bmp.='.jpg';}elseif($...

weixin_36310976的博客 187

php 上传图片并生成缩略图,PHP 图片上传生成缩略图代码

$FILENAME = "p_w_picpath_name";// 生成图片的宽度$RESIZEWIDTH = 400;// 生成图片的高度$RESIZEHEIGHT = 400;function ResizeImage($im, $maxwidth, $maxheight, $name){$width = p_w_picpathsx($im);$height = p_w_picpathsy($i...

weixin_39640414的博客 115

php canvas 图片上传,JavaScript_js生成缩略图后上传并利用canvas重绘,一般在处理图片上传时,通常 - phpStudy...

js生成缩略图后上传并利用canvas重绘一般在处理图片上传时,通常的逻辑都是将源图片上传到服务器端,再由服务器端的语言进行缩放大小的操作。此种模式一般可以满足大部分的需求,但当我们所需要的图片仅仅是一个符合规定大小的源图片的缩略图,再使用此种模式,将是一种浪费服务端资源以及带宽的方式,故我们考虑在浏览器端生成小图后再进行上传操作。//以下为源代码function drawCanvasImage(...

weixin_28954859的博客 159

图片上传与动态生成缩略图功能PHP

/ 最大文件大小5MB。:上传成功后,页面将显示原图和缩略图。:用户可以通过页面提供的文件上传表单上传图片。:在上传图片之后,系统会自动生成该图片的缩略图,并保存在指定的目录中。// 创建上传目录和缩略图目录(如果不存在)// 生成一个唯一的文件名并保存上传文件。// 上传成功,生成缩略图。// 将原图缩放到缩略图大小。// 处理不同类型的图片。// 创建缩略图的画布。// 设置缩略图大小。

安 913
上一篇: 定制PHP分页类
下一篇: 生成随机图片验证码
错_对
博客等级 码龄16年 68粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值