Избегайте замены пробела в имени файла символом подчеркивания при загрузке

У меня есть форма в Codeigniter, в которую я загружаю файл. Если имя файла содержит пробел, например: images (1).jpg, он загружается в защищенную папку как images_(1).jpg. Как этого избежать? Я хочу загрузить его с тем же именем, что и изображение, например: images (1).jpg.

Я использовал trim() при доступе к имени файла как:

$thumbfile=trim($_FILES['thumb_image']['name']);

Для загрузки файла я использовал следующий раздел кода:

$config1['upload_path'] = './secure/'.$lastid;
$ext = end(explode(".", $_FILES['thumb_image']['name']));
$config1['file_name'] = trim($_FILES['thumb_image']['name']);
$config1['allowed_types'] = 'jpg|png|jpeg|gif|bmp|jpe|tiff|tif';
$this->load->library('upload', $config1);

Может ли кто-нибудь помочь мне решить эту проблему. Заранее спасибо.


person Jenz    schedule 28.04.2014    source источник
comment
Это стандартная функциональность библиотеки загрузки Codeigniter. В связи с этим вам придется взломать ядро ​​codeigniter.   -  person Ohgodwhy    schedule 28.04.2014
comment
попробуйте $thumbfile = str_replace(' ', ' ', $_FILES['thumb_image']['name']);   -  person Dexter    schedule 28.04.2014
comment
@MohitJain Это не сработало.   -  person Jenz    schedule 28.04.2014


Ответы (1)


Попробуйте $config['remove_spaces'] = FALSE;

В противном случае загляните в основную библиотеку загрузки, где вы увидите $this->file_name = preg_replace("/\s+/", "_", $this->file_name); в методе do_upload, который вы можете изменить.

person LifeQuery    schedule 28.04.2014