使用Codeigniter的文件上传类时,如何设置max_filename错误消息?

时间:2013-05-06 21:15:54

标签: codeigniter file-upload error-handling

我正在使用CodeIgniter的文件上传类来上传PDF文件。

我将偏好设置为described in the user guide

$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'pdf';
$config['max_size'] = '1000';
$config['max_filename'] = 20;

当我尝试上传错误类型(或太大)的文件时,会显示相应的错误消息(例如“不允许您尝试上传的文件类型。”)这些错误消息存储在upload_lang.php个文件(./system/language/english/upload_lang.php)。

但是,当我尝试上传文件名超过20个字符的文件时,不显示任何错误消息(并且不存储在upload_lang.php文件中)。

问题:我在哪里可以找到(或设置)此消息,如何调用?

1 个答案:

答案 0 :(得分:1)

如果正在上传的文件的文件名超过配置中设置的限制,则不会抛出错误,文件名将被截断。这可以在:system/libraries/Upload.php

中看到
// Truncate the file name if it's too long
if ($this->max_filename > 0)
{
    $this->file_name = $this->limit_filename_length($this->file_name, $this->max_filename);
}

这就是为什么你找不到错误信息 - 它不存在!如果查看同一文件,可以在do_upload函数中查看可以生成哪些错误。如果您想更改功能,如果超出文件名大小则抛出错误,而不是截断文件名,那么您可以extend the upload library

如果您想更改任何错误消息或添加自己的错误消息,可以设置以下目录(假设您使用的语言是英语):

application/language/english

然后从以下位置复制语言文件:

system/language/english

CodeIgniter将使用application中的语言文件,而不是systemwhich you can modify