上传包含缩略图的文件数组

时间:2013-07-11 20:08:11

标签: php codeigniter

我尝试从单个表单上传多个文件但由于某种原因我得到“上传路径似乎无效”。我检查了权限,他们是正确的,所以我不知道这是自己的图像是一个问题..这些是我用来创建图像的功能

<input type="file" name="images[]" multiple id="img"></input>

function upload_image(){

    $config['allowed_types'] = 'gif|jpg|png|jpeg';
    $config['max_size'] = 2*1024;
    $config['max_width']  = '1024';
    $config['max_height']  = '1024';
    $config['remove_spaces'] = TRUE;

    $this->load->library('upload', $config);

    if (!$this->upload->do_upload('images'))
    {
        $error = array('error' => $this->upload->display_errors());
        return $error;
    }   
    else
    {
        for($i = 0, $t = count($_FILES['images']); $i < $t; $i++) {

            $id = $this->files->create_thumb($i);

        }
    }
}

 function create_thumb($i){

    $file = $this->upload->data();
    $files = $file['file_name'];
    $fields = array('files' => $files[$i]);

    print_r($fields);
    exit;

    for ($i = 0; $i < count($files); $i++) {

    $config['image_library'] = 'gd2';
    $config['source_image'] = 'files/images/'.$files[$i];
    $config['new_image']    = 'files/images/thumbs/'.$files[$i];
    $config['thumb_marker'] = '';
    $config['create_thumb'] = TRUE;
    $config['maintain_ratio'] = TRUE;
    $config['width']     = 120;
    $config['height']   = 120;

    $this->load->library('image_lib'); 
    $this->image_lib->initialize($config);
    $this->image_lib->resize();
    $this->image_lib->clear();

    }

}

1 个答案:

答案 0 :(得分:1)

将配置移至config/upload.php。作为替代解决方案,您可以在加载库后使用以下代码行初始化配置:

$this->upload->initialize($config);

来自documentation

  

如果您不想使用上述方法设置首选项,则可以将它们放入配置文件中。只需创建一个名为upload.php的新文件,在该文件中添加$ config数组。然后将文件保存在:config / upload.php中,它将自动使用。如果您将首选项保存在配置文件中,则无需使用$ this-&gt; upload-&gt;初始化函数。

要检查PHP是否可以访问您的目录,您可以使用is_dir()

var_dump(is_dir('/path/to/upload/folder/')); 

希望这有帮助!