Мое приложение codeigniter неожиданно сломалось сегодня. Я не работал над кодом загрузки, и когда я попытался загрузить изображение сегодня, я неожиданно получил «Тип файла, который вы пытаетесь загрузить, не разрешен». Вчера все было хорошо.
Мой конфигурационный массив:
$config = array( 'file_name' => $data['slug'] .'-'. $key, 'upload_path' => './images', 'allowed_types' => 'gif|jpg|jpeg|png' );
Я также пытался установить разрешенные типы как: image / gif | image / jpg | image / jpeg | image / png ', но не повезло.
Демпинг $ this-> upload-> data ():
Array ( [file_name] => ring.jpg [file_type] => image/jpeg [file_path] => /home/user/www.domain.ca/images/ [full_path] => /home/user/www.domain.ca/images/ring.jpg [raw_name] => ring [orig_name] => [client_name] => ring.jpg [file_ext] => .jpg [file_size] => 49158 [is_image] => 1 [image_width] => [image_height] => [image_type] => [image_size_str] => )
Я понимаю, что в предыдущих версиях CI были некоторые ошибки, но вчера у меня не было этих проблем. Я также понимаю, что эта ошибка возникает только в том случае, если тип MIME не соответствует разрешенному, но это, похоже, не так.
Сервер Apache.
Кто-нибудь знает, что может быть проблемой? Благодаря!
У меня была эта проблема дважды, вот два решения, которые сработали для меня;
1 – Тип mime, сообщаемый системой, может меняться и не может быть в массиве типов mime, установленных для определенного расширения файла. Файлы .csv – самое худшее, что я нашел для этого. Узнайте, какой тип mime система сообщает, сбросив данные загрузки после загрузки
die($this->upload->data());
Индекс «file_type» будет содержать строку – добавьте это значение массива с индексом, который соответствует желаемому расширению файла в приложении / config / mimes.php
2 – В последнее время у меня было это, когда я обновил свою основную версию Codeiginter от 2.x до 3.x. Я обновил содержимое системного каталога, но не приложение / config. Я не заметил, что файл application / config / mimes.php несколько отличается: более новая версия возвращает массив, тогда как старый включает в себя это как var. Исправление было скопировать в новой версии mimes.php
Вы правильно инициализировали $config
?
$this->load->library('upload', $config); $this->upload->initialize($config); // Make sure it has been initialized
Не уверен, что это помогает, у меня была эта проблема только на моей Windows Dev Machine, запущенной на тестовом сервере на локальном хосте, на моем хостинговом веб-хостинге он работал отлично, обнаруживая типы mime.
Я быстро просмотрел загружаемую библиотеку, и обнаружил, что вы можете просто вставлять * в разрешенные типы, чтобы разрешить что-либо.
Не думайте, что это было документировано в любом месте руководства, но отсортировало проблему для меня, так как я просто хотел, чтобы мой сценарий работал и работал локально, чтобы немного поработать над этим.
Сегодня у меня была такая же проблема.
То, что я сделал, это просто скопировать весь контент CodeIgniter-3.0.6\application\config\mimes.php
в мое application\config\mimes.php
.