Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing name of the uploaded file in CodeIgniter (dots & underscores)

I got some problems with changing name of uploaded file:

$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(); 

But, when I check my filename it shows me

a.s_.d_.f_.mp3

Why CodeIgniter add underscore before every dot after first one? How I can disable this? Thank you.

ADDED

Well I found solution. system->libraries->Upload.php file.

Line 994, _prep_filename() function.

        $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;
        }
    }
like image 259
CyberLom Avatar asked Apr 20 '11 09:04

CyberLom


1 Answers

Try adding 'remove_spaces' => FALSE to your config array and see if that takes care of the problem. This is set to TRUE by default, but it should only be replacing spaces with underscores. It could be a CI bug with the file uploading class.

like image 138
Fuseblown Avatar answered Oct 16 '22 21:10

Fuseblown