将csv上传到Codeigniter

Sto*_*dow 16 upload codeigniter mime-types

有没有其他人在将csv文件上传到Codeigniter时遇到问题?我觉得很烦人"不允许你试图上传的文件类型." 错误,即使我已经明确设置了上传类型.这是我的代码(应该是相当标准的东西):

    function doUpload() {

    $config['upload_path'] = 'uploads/';
    $config['allowed_types'] = 'text/plain|text/csv|csv';
    $config['max_size'] = '5000';
    $config['file_name'] = 'upload' . time();

    $this->load->library('upload', $config);

    if(!$this->upload->do_upload()) echo $this->upload->display_errors();
    else {
        $file_info = $this->upload->data();
        $csvfilepath = "uploads/" . $file_info['file_name'];
        $this->addfromcsv($csvfilepath);

    }

}
Run Code Online (Sandbox Code Playgroud)

我试图覆盖我允许的类型中的所有基础 - 也许我错过了一个?感谢您的帮助!

Jos*_*bre 30

我通过将cbrandolino建议的mimetypes 添加到config/mimes.php(很棒的jljohnstone)来实现它.所以我的$ mimes的csv属性现在看起来像这样:

'csv'   =>  array('application/vnd.ms-excel', 'text/anytext', 'text/plain', 'text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel')
Run Code Online (Sandbox Code Playgroud)

  • 很有帮助.我想知道为什么官方CI不包括这个.谢谢. (2认同)

cbr*_*ino 12

不幸的是,没有官方规范,所以它们中有很多:最缺少的是那些,

text/comma-separated-values|application/csv|application/excel|application/vnd.ms-excel|application/vnd.msexcel|text/anytext
Run Code Online (Sandbox Code Playgroud)

你不太可能遇见另一个.


jlj*_*one 5

我在上传.csv文件时遇到了同样的问题.我通过file -I file.csv在OS X终端中使用来确定mime类型来解决它.它报告mime类型是'text/plain'所以我将它添加到config/mimes.php文件中.