Я пытаюсь создать загрузчик файлов для загрузки файлов JSON с помощью Codeigniter 3.1.13. Я создал базовую форму, используя документацию CI, но постоянно получаю сообщение об ошибке «Тип файла, который вы пытаетесь загрузить, не разрешен».
Я сделал var_dump файла и проверил, что тип действительно указан в mimes.php, поэтому я не уверен, что мне не хватает!
Вот мой код:
public function upload_data_file(){
$this->load->helper(array('form', 'url'));
$config['upload_path'] =$this->config->item('temp_path'). "fhmFieldData";
$config['allowed_types'] = 'json';
$this->load->library('upload', $config);
var_dump($_FILES);
if (! $this->upload->do_upload('userfile')) {
$error = array('error' => $this->upload->display_errors());
$this->render($error,'fhm/enter_data');
}
else {
$data = array('upload_data' => $this->upload->data());
$this->render($data,'fhm/enter_data');
}
}
Вот что выводит var_dump:
'userfile' =>
array (size=5)
'name' => string 'FHMFieldData_v2022-1_VMC593.json' (length=32)
'type' => string 'application/json' (length=16)
'tmp_name' => string '/users/v/m/vmc/phptemp/upload/php846QNI' (length=39)
'error' => int 0
'size' => int 17572
Мой файл mimes.php имеет это в строке 117:
'json' => array('application/json', 'text/json'),
Решение проблемы
делая мои комментарии ответом:
Проверьте типы mime вашего сервера, потому что не все хостинг-провайдеры устанавливают все типы mime!
добавьте
text/plain
в свой 'json' в application\config\mimes.php:'json' => array('application/json', 'text/json', 'text/plain'),
примечание: добавление text/plain
также часто решает проблемы с типом mime *.csv, поэтому имейте это в виду для других приложений.
Комментариев нет:
Отправить комментарий