关于CI框架实现递归生成文件路径并重新生成图片的功能介绍

关于CI框架实现递归生成文件路径并重新生成图片的功能介绍

内容导读

收集整理的这篇技术教程文章主要介绍了关于CI框架实现递归生成文件路径并重新生成图片的功能介绍,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3159字,纯文字阅读大概需要5分钟

内容图文

这篇文章主要介绍了CI框架实现递归生成文件路径并重新生成图片功能,涉及CodeIgniter框架自定义图片控制器类实现文件目录递归以及调用图片处理扩展类进行图片生成相关操作技巧,需要的朋友可以参考下

本文实例讲述了CI框架实现递归生成文件路径并重新生成图片功能。分享给大家供大家参考,具体如下:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');set_time_limit(0);class Img_build extends CI_Controller{
private static $img_path =
'upload_old/';
private static $new_path =
'upload/';
function __construct()
{


parent::__construct();
}
/**
 * 获取需要读取的路径的信息
 * $map = array (
 *



 '路径名' => array (文件1, 文件2, 文件3)
 *

 )
 */
public function index()
{

$this->load->helper('directory');

//读取路径的信息

$map = directory_map(self::$img_path, FALSE, TRUE);

echo "<pre>";

print_r($map);

echo "</pre>";

if(!empty($map) && is_array($map))

{


$this->build_path($map);

}
}
/**
 * 递归生成相应的路径
 * @param array $map
 */
private function build_path($map = array())
{

 if(!file_exists(self::$new_path))

{


mkdir(self::$new_path, 0777);

}

foreach($map as $key => $val)

{


$old_img_path = self::$img_path;


$old_tmp_path = self::$img_path.$key.'/';


$new_img_path = self::$new_path;


$new_tmp_path = self::$new_path.$key.'/';


if(is_dir($old_tmp_path))


{



//echo $new_tmp_path;



if(!file_exists($new_tmp_path))



{




mkdir($new_tmp_path, 0777);



}



self::$img_path = $old_tmp_path;



self::$new_path = $new_tmp_path;



echo 'path:'.self::$img_path."<hr>";



$this->load->helper('directory');



$c_map = directory_map($old_tmp_path, FALSE, TRUE);//




 echo "<pre>";//




 print_r($c_map);//




 echo "</pre>";



if(!empty($c_map) && is_array($c_map))



{




$this->build_path($c_map);



}


}


if(is_file(self::$img_path.$val))


{



echo 'file:'.self::$img_path.$val."<hr>";



$img = array();



$img['source_image'] = self::$img_path.$val;



$img['new_image']
= self::$new_path.$val;



$this->build_img($img);


}


self::$img_path = $old_img_path;


self::$new_path = $new_img_path;

}
}
/**
 * 根据原图片生成新的图片
 * @param array $img
 * $img = array('source_image'=> '原图片的路径', 'new_image' => '新图片路径')
 */
private function build_img($img = array())
{


if(!is_array($img) || empty($img))

{


return FALSE;

}

//设置图像生成参数

$config['image_library']
= 'gd2';
//设置图像库

$config['source_image']
 = $img['source_image']; //设置原始图像的名字/路径

$config['create_thumb']
 = FALSE;
//让图像处理函数产生一个预览图像

$config['maintain_ratio']
= TRUE; //指定是否在缩放或使用硬值的时候使图像保持原始的纵横比例

//$config['quality']

 = 200;

$img_info = array();

$img_info = getimagesize($config['source_image']);//获取图片的尺寸

if(is_array($img_info) && !empty($img_info))

{


$config['width']


= $img_info[0];


$config['height']


= $img_info[1];

}

$config['new_image']

= $img['new_image']; //新图片路径

$this->load->library('image_lib', $config); //加载图片处理类

$this->image_lib->initialize($config); //调用

if ( ! $this->image_lib->resize())

{


echo $this->image_lib->display_errors();

}



$this->image_lib->clear(); //清除图片处理参数
}}?>

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

如何使用CI框架实现文件上传的优化以及多文件上传

关于CI框架无限级分类和递归的实现

以上就是关于CI框架实现递归生成文件路径并重新生成图片的功能介绍的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的关于CI框架实现递归生成文件路径并重新生成图片的功能介绍全部内容,希望文章能够帮你解决关于CI框架实现递归生成文件路径并重新生成图片的功能介绍所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com