#php #codeigniter #file-upload #codeigniter-3
#php #codeigniter #файл-загрузить #codeigniter-3
Вопрос:
У меня есть поле ввода с таким же именем. pdf [] Я вставляю и загружаю его в базу данных, он отлично вставляется в базу данных. но не загружается в папку uploads существует проблема с do_upload();
$items=$_FILES['pdf']['name'];
$count = count($items);
$lstid=$this->FetchData->getLastInserted();
for($i=0; $i<=$count-1; $i ){
//echo $img[$i];
$img = $_FILES['pdf']['name'][$i];
$timezone = new DateTimeZone('Asia/Calcutta');
$datetime = new DateTime("now", $timezone);
$date = $datetime->format("D_M_d_Y_H_i_s");
$ext = pathinfo($img, PATHINFO_EXTENSION);
$new_name=$i.'_'.$state_id.'_'.$date;
if(!empty($img)){
$imagenamefordatabase = $new_name.'.'.$ext;
}
else{
$imagenamefordatabase ='';
}
$config['upload_path'] = 'uploads/';
// set the filter image types
$config['allowed_types'] = 'pdf';
$config['file_name'] = $new_name;
//load the upload library
$this->load->library('upload', $config);
$this->upload->initialize($config);
$this->upload->set_allowed_types('*');
$data['upload_data'] = '';
//if not successful, set the error message
if (!$this->upload->do_upload('pdf[]')) {
$data = array('Success' => $this->upload->display_errors());
}
else {
//else, set the success message
$data = array('Success' => "Upload success!");
$data['upload_data'] = $this->upload->data();
}
$sampleresult = array(
'Report_Print_Data_Id' => $lstid,
'Sample_Report' => $imagenamefordatabase
);
$this->AddData->addReportResult($sampleresult);
}
Комментарии:
1. Пожалуйста, поделитесь
$this->upload->do_upload
также определением метода.2. @jeroen это был мой правильный код. я должен загрузить несколько файлов с одинаковыми именами входных данных. pdf [] я получаю расширения из-за сохранения файла с другим именем. после я использую библиотеку загрузки code Igniter. затем сохраняем имя в базе данных MySQL.
3. @NareshKumarNakka $this-> upload->do_upload() является библиотекой codeigniter по умолчанию.
4. вам нужно использовать вот так $this-> upload->do_upload(‘pdf’);
5. да, я использовал, но не загружал. когда у меня есть одно входное имя. pdf тогда он работает, когда я меняю его на pdf [] , а затем не загружаю. возникает ошибка Вы не выбрали файл для загрузки.
Ответ №1:
Измените имя файла в качестве пользовательского файла.
настройте размер файла в контроллере и попробуйте.
если какая-либо ошибка, пожалуйста, покажите.
Комментарии:
1. Спасибо за ответ. Я решил ответ с помощью. Объявляем переменную выше для цикла. files=$_FILE; и внутри цикла for __ $_FILES[‘pdf’][‘name’]=$files[‘pdf’][‘name’][$i];__ и do_upload(‘pdf’);
Ответ №2:
Вы должны передавать только имя поля без больших скобок []
. Обновите следующую часть вашего кода.
if (!$this->upload->do_upload('pdf')) {
$data = array('Success' => $this->upload->display_errors());
}
else
{
//else, set the success message
$data = array('Success' => "Upload success!");
$data['upload_data'] = $this->upload->data();
}