PHP上传图片并缩放
来源:互联网 发布:sql去重 编辑:程序博客网 时间:2024/06/05 09:20
PHP上传文件,文件的相关信息保存在$FILES
这个全局变量里,文件本身保存在php.ini
指定的临时文件夹下。
对图片缩放,有两个好处,一个是安全性问题能够满足,第二个能够将不必要使用大图的地方节省服务器的流量。
主要是用几个函数配合使用,按照这样的流程: imagecreatetruecolor
直接在内存中创建一张图片 imagecreatefromjpeg
从上传的图片创建一张图片 imagecopyresampled
复制图片 imagejpeg
将内存中的图片保存到文件 imagedestroy
销毁内存中的图片
在php中创建图像的函数是返回一种资源类型,可以理解为指向当前图像的指针,因此在最后不要忘记释放这个指针。(虽然PHP脚本的生存周期很短,结束后会自动释放。) imagecopyresampled
比imagecopyresized
好的地方在于不是非常粗糙,缩放效果更好一点。
/** * 从表单上传JPEG文件并进行重新缩放 * @param string $fieldname * @param string $desturl * @param string $errmsg * @param int $width * @param int $height * @return int */ function uploadjpeg($fieldname, $desturl, &$errmsg, $width = 100, $height = 100) { if($_FILES[$fieldname]['error'] == 0){ $imageinfo = getimagesize($_FILES[$fieldname]['tmp_name']); if($imageinfo && $imageinfo['mime'] == 'image/jpeg' && $imageinfo[0] < 1000 && $imageinfo[1] < 1000){ $newfile = imagecreatetruecolor($width, $height); $srcfile = imagecreatefromjpeg($_FILES[$fieldname]['tmp_name']); if($newfile && $srcfile){ imagecopyresampled($newfile, $srcfile, 0, 0, 0, 0, $width, $height, $imageinfo[0], $imageinfo[1]); if(imagejpeg($newfile, $desturl, 100)){ imagedestroy($newfile); imagedestroy($srcfile); return 0; } $errmsg .= '服务器错误.'; return -1; }else{ $errmsg .= '不正确的文件类型.'; return -2; } }else{ $errmsg .= '不正确的文件类型;或者图片大小过大.'; return -1; } }else { return $_FILES[$fieldname]['error']; } }
阅读全文
0 0
- PHP上传图片并缩放
- 图片缩放并切割上传
- php对上传图片进行缩放处理
- PHP上传图片进行等比缩放
- php上传图片并保存
- php上传图片并预览
- 通过Canvas及File API缩放并上传图片
- 通过Canvas及File API缩放并上传图片
- flask 实现上传图片并缩放作为头像
- 图片等比缩放上传
- PHP上传图片并生成缩略图_1
- PHP上传图片并生成缩略图_2
- php上传图片到mysql并显示
- php上传图片到本地并显示
- php图片上传并生成缩略图
- php批量上传图片并预览
- php个人博客---上传图片并显示
- 缩放图片并保存
- 无法对Image Service启用Java版SOE功能
- 封装ajax和Promise
- 相机对焦和调焦距的区别是什么 ?
- 【软考】课本--章节整理
- python(二)mac环境(macOS10.12.6)下的python3.6使用mysql
- PHP上传图片并缩放
- ZOJ
- 再谈消息包和几张图
- IE兼容性问题
- Longest Substring Without Repeating Characters--LeetCode
- java中的字符,字符串,数字之间的转换
- linux初级命令
- TCP协议下的流量估算
- rpm方式安装Mysql