Как удалить эту ошибку: недопустимый тип файла, который вы пытаетесь загрузить

 public function addAppdetails()
{   $dev_id = $this->sessionStart();

$this->load->library('form_validation');
$this->form_validation->set_rules('appname', 'App Name', 'required');
$this->form_validation->set_rules('platform', 'Platform', 'required');
//$this->form_validation->set_rules('category','App Category','required');
$this->form_validation->set_rules('description', 'App Description', 'required');
//$this->form_validation->set_rules('app_pic','App Pic','required');
//$this->form_validation->set_rules('file','App File','required');
if ($this->form_validation->run())
{
$appname = $this->input->post('appname');
$platform = $this->input->post('platform');
$category1 = $this->input->post('category');
$descripton = $this->input->post('description');
$category = implode(",", $category1);
echo "l";
$data1=$this->appFileupload();
echo "Break";
$data2=$this->appImageupload();
die;
foreach ($data1 as $dataArray)
{
$fileName=$dataArray['file_name'];
}
foreach ($data2 as $dataArray)
{
$imageName=$dataArray['file_name'];
}

$data = array('name' => $appname, 'platform' => $platform, 'description' => $descripton, 'category' => $category,'file_name'=>$fileName,'image_name'=>$imageName,'dev_id'=>$dev_id);
$this->Dev_model->addApp($data);

//$this->appImageupload();
echo "yolo";}
else
{
$data['dataArray'] = $this->sessionStart();
$category = $this->input->post('category');
print_r($category);
$this->load->view('dev/addApp', $data);
}
}

public function appFileupload()
{
$config1['upload_path']          = './uploads/files';
$config1['allowed_types']        = 'apk|exe';

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

if ( ! $this->upload->appFileUpload('file'))
{
$error = array('error' => $this->upload->display_errors());
print_r($error);

}
else
{
$data = array('upload_data' => $this->upload->data());

return $data;

}
}

public function appImageupload()
{
$config2['upload_path']          = './uploads/appImages';
$config2['allowed_types']        = 'gif|jpg|png';
$config2['max_size']             = 1000000000;
$config2['max_width']            = 10240000;
$config2['max_height']           = 76800000;

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

if ( ! $this->upload->appImageUpload('app_pic'))
{
$error = array('error' => $this->upload->display_errors());
print_r($error);

}
else
{
$data = array('upload_data' => $this->upload->data());
return $data;

}
}

Вывод следующий:

lBreak
Array ( [error] =>
The filetype you are attempting to upload is not allowed.
)

Итак, если я обменяю позиции appFileupload() а также appImageupload() тогда он выдаст ту же ошибку для файла ‘apk | exe’ и сейчас выдаёт ошибку для appImageupload(), Если вы спросите, как я узнаю об этом? Тогда ответ, я проверил их папку, один загружается, но не другой.

Версия CodeIgniter: 3.x

1

Решение

Добавьте * вместо другого типа.

 $config['allowed_types'] = '*';

Я просто предлагаю это для теста

Редактировать:

Я не уверен, но это будет полезно.

Вы можете попробовать просмотреть строку 199 system / library / Upload.php:

$this->_file_mime_type($_FILES[$field]);

Измените эту строку на:

$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();
0

Другие решения

Лол, я отвечаю на свой вопрос.

Во-первых, повторная загрузка библиотеки с помощью $ config2 не будет работать, поскольку библиотека уже загружена один раз, а $ config1 останется загруженной. Чтобы загрузить новый конфиг, используйте:

$this->upload->initialize($config2);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector