#php #codeigniter-2
#php #codeigniter-2
Вопрос:
Я перепробовал все возможные методы, но безуспешно. Просто пытаюсь загрузить файл с помощью code igniter, но не исправляю ошибку, которую я получаю
<pre>Array
(
[error] => <p>You did not select a file to upload.</p>
)
Я пробовал использовать обычный php на моем локальном хостинге, который работает нормально, но не работает с code igniter. Это просто не выбор файла. Если я проверю с помощью var_dump($_FILES['fileToUpload']);
, результат будет array(0)
.
Код формы
<form id="contact_form" enctype="multipart/form-data" method="post" action="<?php echo base_url();?>Main/do_upload">
<input type="file" class="form-control" name="fileToUpload" id="fileToUpload">
</form>
Код контроллера
$config = array(
'upload_path' => "./uploads/",
'allowed_types' => "gif|jpg|png|jpeg|pdf",
'overwrite' => TRUE,
'max_size' => "2048000", // Can be set to particular file size , here it is 2 MB(2048 Kb)
'max_height' => "768",
'max_width' => "1024"
);
$this->load->library('upload', $config);
if($this->upload->do_upload())
{
$data = array('upload_data' => $this->upload->data());
echo "<pre>";
var_dump($data);
// $this->load->view('upload_success',$data);
}else{
$error = array('error' => $this->upload->display_errors());
echo "<pre>";
print_r($error);
}
конфигурация
$autoload['libraries'] = array("session", "email", "database");
$autoload['helper'] = array("url", "file", "form");
Есть ли что-нибудь, о чем я не знаю? Пожалуйста, укажите, я застрял здесь.
Комментарии:
1. можете ли вы попробовать site_url() вместо base_url и использовать имя userfile вместо fileToUpload? и выполните echo var_dump($_FILES);die; перед массивом $ config и вставьте это содержимое сюда
Ответ №1:
Вы пропустили имя входного файла в do_upload()
:
Использовать :
if(!$this->upload->do_upload('image_file'))
{
//$this->upload->display_errors()
}
else
{
//$this->upload->data()
}
Вместо:
if($this->upload->do_upload())
Комментарии:
1. Я пробовал это раньше. Как я сказал в своем вопросе » Если я проверю с помощью var_dump($_FILES[‘fileToUpload’]); результатом будет array (0) «.
2. Если я сделаю это способом codeigniter, я получу эту ошибку <pre>Array ( [error] => <p> Вы не выбрали файл для загрузки. </p> ) Я делаю это с помощью if($this-> upload->do_upload(«fileToUpload»))
3. echo $_FILES[‘fileToUpload’][tmp_name]; и проверьте имя файла
Ответ №2:
Вы пропускаете параметры в $this->upload->do_upload
пожалуйста, проверьте приведенный ниже код.
public function do_upload(){
$config = array(
'upload_path' => "assets/uploads/",
'allowed_types' => "gif|jpg|png|jpeg|pdf",
'overwrite' => TRUE,
'max_size' => "2048000", // Can be set to particular file size , here it is 2 MB(2048 Kb)
'max_height' => "768",
'max_width' => "1024"
);
$this->load->library('upload', $config);
$this->upload->initialize($config);
if($this->upload->do_upload('fileToUpload'))
{
$data = array('upload_data' => $this->upload->data());
echo "<pre>";
var_dump($data);
// $this->load->view('upload_success',$data);
}else{
$error = array('error' => $this->upload->display_errors());
echo "<pre>";
print_r($error);
}
}
Передайте имя вашего файла для загрузки в $this->upload->do_upload('fileToUpload')