Как загрузить файл в остальные API Codeigniter - PullRequest
0 голосов
/ 05 ноября 2018

Я застрял в загрузке файла в остальные API в codeigniter. постоянно получаю ошибку. Вы не выбираете файл для загрузки enter image description here

    $config['upload_path'] = $url.'public/images/users_pictures/';
        $config['allowed_types'] = 'jpg|jpeg|png|gif';
        $config['max_size']      = '10096000';
        $config['max_height'] = '3648';
        $config['max_width'] = '6724';
        $this->load->library('upload',$config);
        $this->upload->initialize($config);
        if($this->upload->do_upload('file'))
        {
        // $this->upload->do_upload('cover');
                $uploadData = $this->upload->data();
                $picture = $uploadData['file_name'];
        $this->db->set(array('user_image' => $picture));
        $this->db->where('user_id',$uid);
        $update = $this->db->update('asm_register');
        return $update;
        }
      else
      {
          echo $error = $this->upload->display_errors();
          return "";

      }

1 Ответ

0 голосов
/ 06 ноября 2018

Ответ - Удалите Content-Type : multipart/form-data и оставьте это пустым.

При работе с API вы должны поиграться с обработчиками файлов.

Для проверки файла создан метод file_upload_check, вам просто нужно передать имя файла в качестве параметра.

<input type="file" name="file">

Здесь $ image_name - это имя тега html.

function file_upload_check($image_name)
{
    if (isset($_FILES[$image_name]["tmp_name"]) AND  $_FILES[$image_name]['name']!="") {
        $check_image = getimagesize($_FILES[$image_name]["tmp_name"]);
        $filename   = $_FILES[$image_name]["tmp_name"];
        $handle     = fopen($filename, "r");
        $get_name   = fread($handle, filesize($filename));

        if ($check_image == false) {
            $data['error'] = '<p class="text-danger">The file you have selected is not an image.</p>';
            $data['err'] = 1;
        }else{

            // You file upload code placed here



            $data['file_name'] = $get_name;
            $data['err'] = 0;
        }
    }else{
        $data['error'] = '<p class="text-danger">Please select a file to upload.</p>';
        $data['err'] = 1;
    }

    return $data;
}



function get_file_name()
{
    // this parameter is input file name that i am passing as a parameter.
    $fileData = $this->file_upload_check('file');

    if ($fileData['err'] == 0) {

        // Here is your file name

        $file_name = $fileData['file_name'];
    }else{
        $error = $fileData['error'];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...