Codeigniter扩展了Blueimp上传库

时间:2013-09-18 20:45:25

标签: codeigniter blueimp

我的blueimp文件上传与codeigniter配合得很好。我按原样使用UploadHandler库。但我想扩展它以替换创建唯一文件名的两个函数。这个代码在BlueImp Github wiki中。

我创建了一个扩展库:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_UploadHandler extends UploadHandler {

public function __construct() {
    parent::__construct();
    $CI =& get_instance();
    $CI->load->library('UploadHandler');
}   

protected function upcount_name_callback($matches) {
    $index = isset($matches[1]) ? intval($matches[1]) + 1 : 1;
    $ext = isset($matches[2]) ? $matches[2] : '';
    return '-'.$index.''.$ext;
}

protected function upcount_name($name) {
    return preg_replace_callback(
    '/(?:(?:-([\d]+))?(\.[^.]+))?$/',
    array($this, 'upcount_name_callback'),
    $name,
    1
    );
}

}

当我尝试运行它时,我收到“无法加载UploadHandler”错误。如果我删除我的MY扩展程序,原始代码将运行。我的扩展程序代码有什么问题?这不是扩展CI库的正确方法吗?

而且,是的,我的文件的文件名是MY_UploadHandler.php

谢谢!

1 个答案:

答案 0 :(得分:1)

我在这上面涂了一会儿,终于想通了。要扩展自定义库,您需要在定义类之前“一次性”扩展它所要扩展的文件。

EX:

require_once("UploadHandler.php");

class MY_UploadHandler extends UploadHandler
{
}

希望这会有所帮助。