0

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 です

ありがとう!

4

1 に答える 1