codeigniter - 在 CodeIgniter 中更改上传文件的名称(点和下划线)

标签 codeigniter file-upload filenames

我在更改上传文件的名称时遇到了一些问题:

$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 在第一个点之后的每个点之前添加下划线?我怎么能禁用这个?
谢谢你。

已添加

好吧,我找到了解决方案。 system->libraries->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;
        }
    }

最佳答案

尝试添加 'remove_spaces' => FALSE到您的配置数组,看看是否可以解决问题。这默认设置为 TRUE,但它应该只用下划线替换空格。这可能是文件上传类的 CI 错误。

关于codeigniter - 在 CodeIgniter 中更改上传文件的名称(点和下划线),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5728059/

相关文章:

file - 使用带文件名的存储桶在 s3 存储桶中搜索文件

mysql - 无法截断在 Codeigniter 中的外键约束中引用的表

php 在 csv 中写入希伯来语/UTF-8

php - 将 CI 查询存储到数组中?

java - 多张图片上传(Play Framework)

jquery - Django ajax文件上传

class - 如何在 Scala 中获取当前脚本或类名?

php - POST 变量为空

java - 多部分请求和自定义 header

linux - 如何在命令行中使用 `find` 删除文件名的扩展名(和前缀)?