//views/myproject/testupload.php
<a class = "btn pull-right btn btn-primary"
href = "<?= site_url("myproject/upload/") ?>"><?= lang('upload') ?></a>
//views/myproject/upload.php
<?php echo form_open_multipart(site_url('myproject/do_upload'));?>
<?=form_line('', form_upload('userfile', $this->form_validation->set_value('userfile')));?>
<?=form_submit('upload', lang('action_upload'), 'class = "btn btn-primary"');?>
<?php echo form_close();?>
//Controller/myproject/test.php
public function upload()
{
$this->output->view('analytics/kysim/upload');
}
public function do_upload()
{
$config['upload_path'] = 'C:/test/';
$config['allowed_types'] = 'txt';
$this->load->library('upload', $config);
$name_file = $_FILES['userfile']['name'];
if ( ! $this->upload->do_upload($name_file))
{
$error = array('error' => $this->upload->display_errors());
var_dump($error);
die();
//$this->load->view('upload', $error);
}
else
{
$data = array('upload_data' => $this->upload->data());
var_dump($data);
die();
//$this->load->view('success', $data);
}
}
Я не могу загрузить файл в указанное место (C: // test) .var_dump ($ name_file) отображает имя загруженного файла.
$ this-> upload-> do_upload ($ name_file) возвращает false, и поэтому var_dump ($ error) отображает error message "error" => "<p>You did not select a file to upload.</p><p>You did not select a file to upload.</p>""
Приветствуется любая помощь по загрузке файла в указанное место (C: // test).
@Sanjay, что не работает
Есть ли у Apache доступ к C:/test, я бы в этом сомневался. Попробуйте загрузить в папку в корневом каталоге документов, это сработает?
Хотя "<p>You did not select a file to upload.</p> звучит так, как будто вы вводите неверное имя файла
Пожалуйста, всегда отвечайте на ответы, давая несколько комментариев или, если это вам поможет, пометив его как зеленый и проголосовав, это лучший способ поблагодарить всех программистов.






Надеюсь, что это поможет вам :
Примечание: убедитесь, что на вашем приводе c есть папка test, которая, в свою очередь, имеет разрешение writable
Ваш метод do_upload должен быть таким:
public function do_upload()
{
$config['upload_path'] = 'C:\test\\';
$config['allowed_types'] = 'txt';
$this->load->library('upload', $config);
if (! empty($_FILES['userfile']['name']))
{
if ( ! $this->upload->do_upload('userfile'))
{
$error = array('error' => $this->upload->display_errors());
var_dump($error);
die();
}
else
{
$data = array('upload_data' => $this->upload->data());
var_dump($data);
die();
}
}
}
Ваша форма должна быть такой:
<?php
echo form_open_multipart('myproject/do_upload');
echo form_line('', form_upload('userfile', $this->form_validation->set_value('userfile')));
echo form_submit('upload', lang('action_upload'), 'class = "btn btn-primary"');
echo form_close();
?>
Подробнее: https://www.codeigniter.com/user_guide/libraries/file_uploading.html
мой ответ помог тебе?
@pradeep Проблема была с путем загрузки ... я исправил ее, используя временную систему $ config ['upload_path'] = sys_get_temp_dir ();
да, это для живого сервера, но мой ответ работает правильно на локальном хосте, вы не упоминаете, что вы работаете на живом сервере
Этот учебник может помочь вам: - https://www.formget.com/codeigniter-upload-image/
$ config ['upload_path'] = 'C: \ test \' должно быть.