Изменение имени загруженного файла в CodeIgniter (точки и подчеркивания) - PullRequest
6 голосов
/ 20 апреля 2011

У меня возникли проблемы с изменением имени загружаемого файла:

$config = array(
        'allowed_types' => 'mp3',
        'file_name' => $fulltitle,       // Lets say we've entered 'a.s.d.f.mp3'
        'upload_path' => './music/'
    );
$this->load->library('upload', $config);        
$this->upload->do_upload(); 

Но, когда я проверяю мое имя файла, оно показывает мне

a.s_.d_.f_.mp3

Почему CodeIgniter добавляет подчеркивание перед каждой точкой после первой? Как я могу отключить это? Спасибо.

ДОБАВЛЕНО

Ну, я нашел решение. система-> библиотеки-> файл Upload.php.

Строка 994, функция _prep_filename ().

        $parts      = explode('.', $filename);
    $ext        = array_pop($parts);
    $filename   = array_shift($parts);

    foreach ($parts as $part)
    {
        if ( ! in_array(strtolower($part), $this->allowed_types) OR $this->mimes_types(strtolower($part)) === FALSE)
        {
            $filename .= '.'.$part.'_'; // Line 994
        }
        else
        {
            $filename .= '.'.$part;
        }
    }

1 Ответ

3 голосов
/ 20 апреля 2011

Попробуйте добавить 'remove_spaces' => FALSE в ваш конфигурационный массив и посмотрите, решит ли это проблему.По умолчанию это значение TRUE, но оно должно заменять только пробелы подчеркиванием.Это может быть ошибка CI в классе загрузки файлов.

...