我正在为目录中的所有图片创建缩略图。
在我的控制器中,我像这样从我的目录中检索所有文件。
$this->load->model('Home_model');
$this->load->helper('directory');
$dir = '../Mistletoe/Public/img/pics';
$AllImages = directory_map($dir);
$this->Home_model->resize($AllImages);
然后在我的模型中,我宣布了一个图像所在的路径。
在我的调整大小功能中,我用文件名加入我的路径
但后来我得到了错误:
PHP错误已经遇到
严重性:注意
消息:数组到字符串转换
文件名:models / home_model.php
行号:21
<?php
class Home_model extends CI_Model
{
var $images_path;
var $images_path_thumbs;
function Home_model()
{
parent::__construct();
$this->images_path = base_url() . 'public/img/pics/';
$this->images_path_thumbs = base_url() . 'public/img/pics/thumbs/';
}
function resize($imagesToProcess)
{
foreach ($imagesToProcess as $val)
{
$config = array
(
'source_image' => $this->images_path . $val,
'new_image' => $this->images_path_thumbs,
'maintain_ration' => true,
'width' => 300,
'heigth' => 206,
);
$this->load->library('image_lib', $config);
$this->image_lib->resize();
}
}
}
答案 0 :(得分:1)
基于此处的文档...
https://ellislab.com/codeigniter/user-guide/helpers/directory_helper.html
您的循环中的$val
看起来有时可能是一个数组,代表一个子目录(例如,您在thumbs
内有public/img/pics
)。您可能希望将directory_map
限制为仅1级:
$AllImages = directory_map($dir, 1);