Попробуйте использовать библиотеку загрузки файлов codeigniter в качестве общей функции из Helpers - PullRequest
0 голосов
/ 17 июня 2020

Может ли кто-нибудь помочь, поскольку я пытаюсь использовать библиотеку загрузки codeigniter из папки помощников, но все время получаю ту же ошибку, что я не выбираю изображение для загрузки? Пробовал ли кто-нибудь это раньше?

class FileUpload extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper(array('form', 'file_uploading'));
        $this->load->library('form_validation', 'upload');
    }

    public function index() {
        $data = array('title' => 'File Upload');
        $this->load->view('fileupload', $data);
    }

    public function doUpload() {
        $submit = $this->input->post('submit');
        if ( ! isset($submit)) {
            echo "Form not submitted correctly";
        } else { //            Call the helper
            if (isset($_FILES['image']['name'])) {
                $result = doUpload($_FILES['image']);
                if ($result) {
                    var_dump($result);
                } else {
                    var_dump($result);
                }
            }
        }
    }
}

Вспомогательная функция

<?php
function doUpload($param) {
    $CI = &get_instance();
    $CI->load->library('upload');
    $config['upload_path'] = 'uploads/';
    $config['allowed_types'] = 'gif|png|jpg|jpeg|png';
    $config['file_name'] = date('YmdHms' . '_' . rand(1, 999999));
    $CI->upload->initialize($config);
    if ($CI->upload->do_upload($param['name'])) {
        $uploaded = $CI->upload->data();

        return $uploaded;
    } else {
        $uploaded = array('error' => $CI->upload->display_errors());

        return $uploaded;
    }
}

1 Ответ

0 голосов
/ 18 июня 2020

В вашем коде есть некоторые незначительные ошибки, исправьте их, как показано ниже,

$result = doUpload($_FILES['image']);

здесь вы должны передать имя поля формы, в соответствии с вашим кодом image - это имя входного файла.

, поэтому ваш код должен быть похож на

$result = doUpload('image');

, тогда внутри функции doUpload вы должны обновить код с

$CI->upload->do_upload($param['name'])

до

$CI->upload->do_upload($param)

, потому что имя поля формы должно быть передано функции do_upload для успешной загрузки файла.

ПРИМЕЧАНИЕ

Убедитесь, что вы добавлен enctype="multipart/form-data" в элемент формы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...