Затем перейдите в /config/mimes.php и измените элемент массива 'csv' следующим образом:

о-нибудь еще были проблемы с загрузкой 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);

    }

}

Я пытался охватить все базы в моих разрешенных типах - может быть, я пропустил одну? Спасибо за любую помощь с этим!

 machineaddict02 апр. 2013 г., 13:32
allowed_types должно быть$config['allowed_types'] = 'csv'; И вконфиг / mimes.php ты должен добавитьtext/plain вCSV ключ. Вот как я это сделал.

Ответы на вопрос(6)

определив тип пантомимы с помощьюfile -I file.csv в терминале OS X Он сообщил, что тип mime был «text / plain», поэтому я добавил его в файл config / mimes.php.

 Sergio03 апр. 2014 г., 14:09
Спасибо. Это сработало для меня.

2.2.0 -

Я сделал быструю отладку наЗагрузить библиотека и я обнаружил, что иногда один и тот же исходный код, работающий на разных серверах, идентифицирует один и тот же файл CSV, имеющий другой тип файла (т.е.Сервер 1 определить файл CSV как:применение / vnd.ms-первенствуйте ноСервер 2 идентифицировать тот же файл CSV как:Текст / х-с).

Мое исправление было добавить, вприложение / Config / mimes.phpтип файла, который определяется сервером, на котором возникла проблема. Следовательно, мой массив CSV изmimes.php файл выглядит так:'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', 'text/x-c').

 Florin30 окт. 2015 г., 18:00
Спасибо. Хорошее решение
Решение Вопроса

наиболее популярными среди них являются:

text/comma-separated-values|application/csv|application/excel|application/vnd.ms-excel|application/vnd.msexcel|text/anytext

Маловероятно, что вы встретите другого.

 StormShadow20 янв. 2011 г., 05:44
Я могу найти MIME-тип файла не программно?
 cbrandolino19 янв. 2011 г., 08:47
@StormShadow: На самом деле есть способ расширить класс загрузки. Вот код, я использовал его в прошлом и работает.codeigniter.com/forums/viewthread/123663/#757848 Кстати, вы можете просто захотеть проверить конкретный тип MIME вашего файла и добавить его вместо этого.
 StormShadow19 янв. 2011 г., 08:37
Спасибо, но это не сработало. Это кажется настолько глупым, что не существует способа установить его для всех типов файлов. По крайней мере, во время разработки, даже если они не хотят допустить его в производство.
 rgvcorley27 сент. 2013 г., 11:53
У CSV, с которыми я имел дело (загруженный из онлайн-банкинга), был тип пантомимыtext/plain - на тот случай, если никто другой не сможет заставить его работать с вышеуказанными.
 StormShadow20 янв. 2011 г., 06:12
Подкласс работал прекрасно! Спасибо! Большой зеленый чек для вас!

Я получил это работает, добавивcbrandolinoПредлагает mimetypes в config / mimes.php (отличный советjljohnstone). Итак, свойство csv моих $ mimes теперь выглядит так:

'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')
 Nate Nolting08 февр. 2013 г., 19:59
У меня тоже сработало. Есть список типов пантомимы CSV в/appication/config/mime.php файл, но он не такой обширный, как тот, который опубликовал Йос.
 Michael L Watson04 июн. 2014 г., 14:40
из приложения Google Docs / октет-поток
 ABorty05 сент. 2013 г., 13:17
спасибо @JosFaber .... это работает для меня.
 elf198411 сент. 2012 г., 15:44
Очень полезно. Мне интересно, почему официальный CI не включил это. Благодарю.
 Drewdin13 апр. 2013 г., 18:40
Мне не хватало двух из списка, после добавления их мой заработал!

сначала в разрешенных типах просто наберите 'csv'

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

Затем перейдите в /config/mimes.php и измените элемент массива 'csv' следующим образом:

 'csv' => array(
    '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',
    'text/plain'
 ),

я добавляю тип пантомимы (применение / vnd.ms-первенствуйте ) в файл типа MIME, но проблема заключается в том, что codeigniter будет принимать только имя файлаUserFile, если вы установите имя файла userfile, то это сработает.

Я думаю, что мог бы быть другой путь, но я не мог найти это.

Ваш ответ на вопрос