我有 blueimp 文件上传与代码点火器配合得很好。我按原样使用上传处理程序库。但我想扩展它以替换创建唯一文件名的两个函数。这个代码在BlueImp Github维基中。
我创建了一个扩展库,因此:
<?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
);
}
}
当我尝试运行它时,出现"无法加载上传处理程序"错误。如果我删除我的 MY 扩展,原始代码将运行。我的扩展码有什么问题?这不是扩展 CI 库的正确方法吗?
而且,是的,我的文件的文件名是MY_UploadHandler.php
谢谢!
我对此
点了一会儿,终于想通了。要扩展自定义库,您需要在定义类之前"要求一次"它正在扩展的文件。
前任:
require_once("UploadHandler.php");
class MY_UploadHandler extends UploadHandler
{
}
希望这有所帮助。