首页 > 开发 > PHP > 正文

基于ThinkPHP5.0实现图片上传插件

2024-05-04 22:45:19
字体:
来源:转载
供稿:网友

效果预览图:

该插件主要功能是:可预览裁剪图片和保存原图片,执行裁剪图片后会删除 裁剪的原图片目录,以便减少空间。

一、下载附件

地址:链接: https://pan.baidu.com/s/1nuQ4NgP  密码: 4pbu

二、将附件中的CropAvatar.php放到自己程序目录extend/org目录下,如果遇到 exif_imagetype 错误,需要打开 php.ini 中的 extension=php_exif.dll

三、common.php公共函数

找到应用程序目录下的common.php文件,在里面添加公用函数:

/** * 转换字节 * @param $bytes 传入字节数值 * @param int $decimals * @return string BKMGTP */function human_filesize($bytes, $decimals = 2) { $sz = 'BKMGTP'; $factor = floor((strlen($bytes) - 1) / 3); return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];}/** * 删除该目录以及该目录下面的所有文件和文件夹 * @param $dir 目录 * @return bool */function removeDir($dirName) { //判断传入参数是否目录,如不是执行删除文件 if (!is_dir($dirName)) {  //删除文件  @unlink($dirName); } //如果传入是目录,使用@opendir将该目录打开,将返回的句柄赋值给$handle $handle = @opendir($dirName); //这里明确地测试返回值是否全等于(值和类型都相同)FALSE //否则任何目录项的名称求值为 FALSE 的都会导致循环停止(例如一个目录名为“0”) while (($file = @readdir($handle)) !== false) {  //在文件结构中,都会包含形如“.”和“..”的向上结构  //但是它们不是文件或者文件夹  if ($file != '.' && $file != '..') {   //当前文件$dir为文件目录+文件   $dir = $dirName . '/' .$file;   //判断$dir是否为目录,如果是目录则递归调用reMoveDir($dirName)函数   //将其中的文件和目录都删除;如果不是目录,则删除该文件   is_dir($dir) ? removeDir($dir) : @unlink($dir);  } } closedir($handle); return rmdir($dirName);}

四、修改配置文件

找到应用程序目录下的配置文件config.php,在配置里面添加:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表