6
我有一些问题,改变上传的文件名:改变笨(点和下划线)上传的文件名
$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在第一个点之前的每个点之前都加下划线?我如何禁用此功能? 谢谢。
ADDED
好吧,我找到解决方案。系统 - >库 - > 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;
}
}
我只是看透了,发现也是如此。你在我面前。 :) – Fuseblown 2011-04-20 10:14:59
有没有办法得到这个效果而不直接修改系统文件? – maan81 2012-12-07 08:24:50
我试图在我的文件名中使用点,但没办法,没有CodeIgniter。所以当我指定'abcdefg.room.001.jpg'之类的东西时,它会自动重命名文件'abcdefg_room_001.jpg'。我宁愿使用点,因为我想做一些类似'explode(“。”,“abcdefg.room.001.jpg”);'否则,我必须使用strpos和substr更复杂的字符串操作。 – TARKUS 2016-04-05 18:57:57