Отправка файла на серверную часть CodeIgniter

#php #codeigniter

#php #codeigniter

Вопрос:

Я пытаюсь опубликовать файл на своей серверной части CodeIgniter самым простым из возможных способов.

Я хочу запустить вызов API из Postman следующим образом:

введите описание изображения здесь

И моя функция PHP выглядит примерно так прямо сейчас:

 public function runk_image_put()
{
    $image = $this->upload->data();
    $id = $this->get('id');
    $this->response($image, REST_Controller::HTTP_OK);
}
  

Я почти уверен, что:

 $image = $this->upload->data();
  

Это неправильный способ получения опубликованного файла. Каков правильный способ?

Комментарии:

1. Похоже, вам следует добавить соответствующий порт к вашему адресу. localhost:8080...

Ответ №1:

 function do_upload()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';
    $config['overwrite'] = TRUE;
    $config['encrypt_name'] = FALSE;
    $config['remove_spaces'] = TRUE;
    if ( ! is_dir($config['upload_path']) ) die("THE UPLOAD DIRECTORY DOES NOT EXIST");
    $this->load->library('upload', $config);
    if ( ! $this->upload->do_upload('data')) {
        echo 'error';
    } else {

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

и в вашем контроллере используйте это:

 $this->data['data'] = $this->do_upload();
  

и создайте форму как form-data или, если вы используете двоичный файл, отправьте заголовок того, какой файл похож на jpeg или что, а затем повторите файл

Комментарии:

1. Сначала я получил сообщение об ошибке «КАТАЛОГ ЗАГРУЗКИ НЕ СУЩЕСТВУЕТ», после создания этого каталога я получаю возвращенный объект. Как вставить этот файл в мою базу данных оттуда?

2. вы знаете, что лучше сохранять название изображения в базе данных, а не двоичное содержимое. обычно изображения с двоичным кодом используются для изображений с очень высокой степенью защиты. сделайте форму составной / form-data и получите имя изображения. var_dump $this->data[‘данные’], чтобы увидеть, какие поля там есть, а затем получить имя файла и сохранить в базе данных. файл находится в вашем проекте, и у вас есть название изображения… вы можете использовать его для загрузки на HTML-страницу