我的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
谢谢!
答案 0 :(得分:1)
我在这上面涂了一会儿,终于想通了。要扩展自定义库,您需要在定义类之前“一次性”扩展它所要扩展的文件。
EX:
require_once("UploadHandler.php");
class MY_UploadHandler extends UploadHandler
{
}
希望这会有所帮助。