【发布时间】:2017-07-04 10:02:42
【问题描述】:
我有一个非常奇怪的问题。我正在使用 CodeIgniter 上传类来管理简单 jpg 图像的上传。如果我上传扩展名为 .JPG 的文件,即使我将属性 file_ext_tolower 设置为 TRUE,我的文件也会以 .JPG 扩展名上传。这是我不想要的东西!这是一些代码..
$this->load->library('upload');
$config['upload_path'] = './resources/img/content';
$config['allowed_types'] = 'jpg';
$config['overwrite'] = FALSE;
$config['file_ext_tolower'] = TRUE;
$config['remove_spaces'] = TRUE;
$this->upload->initialize($config, true);
if ( ! $this->upload->do_upload('cover')) {
$this->session->set_flashdata('message','Cover: ' . $this->upload->display_errors());
redirect('admin');
break;
} else {
// Whatever
}
问题是,这甚至不能在本地主机上运行。它总是继续并使用 .JPG 上传文件。我只是无法理解。我在服务器和本地主机上都使用 CodeIgniter 3.1.0。有什么想法吗?在服务器上,我还在 php.ini 中启用了 fileinfo 扩展。
这带来的另一件事是..如果我有一个名为 myfile.JPG 和 myfile.jpg 的文件,CodeIgniter 无法看到它们是同一个文件..这最终可能是只有 file_ext_tolower 正常工作时才会这样做。
在服务器上,myfile.JPG 被保存为 myfile.JPG。我认为,当 file_ext_tolower 设置为 TRUE 时,它应该保存为 myfile.jpg ......最终,在此之前,实际搜索另一个具有此名称的文件..如果具有此名称的文件已经在服务器上,它应该遵循 overwrite 设置:要么覆盖它,要么用渐进式数字重命名。
【问题讨论】:
标签: php codeigniter file-upload