codeigniterでうまく動作するblueimpファイルのアップロードがあります。UploadHandler ライブラリをそのまま使用します。しかし、一意のファイル名を作成する 2 つの関数を置き換えるように拡張したいと考えています。このコードは 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 です
ありがとう!