Как с помощью ajax загружать картинки на сервер в codeigniter?

Пользователь

от aaron_armstrong , в категории: PHP , 2 года назад

Как с помощью ajax загружать картинки на сервер в codeigniter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от greyson , 2 года назад

@aaron_armstrong 

Для загрузки картинок на сервер с помощью AJAX в CodeIgniter вы можете использовать библиотеку загрузки файлов CodeIgniter, которая предоставляет удобный интерфейс для загрузки файлов на сервер. Вот пример кода для загрузки картинки на сервер с помощью AJAX в CodeIgniter:


HTML код формы:

1
2
3
4
5
<form id="upload-form" method="post" enctype="multipart/form-data">
    <input type="file" name="userfile" id="userfile">
    <button type="submit" id="upload-btn">Загрузить</button>
</form>
<div id="upload-result"></div>


JavaScript код для отправки AJAX запроса на сервер:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
$(document).ready(function() {
    $('#upload-form').submit(function(e) {
        e.preventDefault();
        var formData = new FormData(this);
        $.ajax({
            url: '/upload/image',
            type: 'POST',
            data: formData,
            cache: false,
            contentType: false,
            processData: false,
            success: function(data) {
                $('#upload-result').html(data);
            },
            error: function(xhr, status, error) {
                alert('Ошибка при загрузке файла');
            }
        });
    });
});


Код контроллера для загрузки картинки:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
public function image()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = 1024;
    $config['max_width'] = 1024;
    $config['max_height'] = 768;
    $this->load->library('upload', $config);
    if (!$this->upload->do_upload('userfile')) {
        $error = array('error' => $this->upload->display_errors());
        echo json_encode($error);
    } else {
        $data = array('upload_data' => $this->upload->data());
        echo json_encode($data);
    }
}


Обратите внимание, что в контроллере мы проверяем, успешно ли загрузился файл. Если произошла ошибка, мы отправляем сообщение об ошибке на клиент. Если загрузка прошла успешно, мы отправляем данные о загруженном файле на клиент.


Также не забудьте настроить права доступа к директории для загрузки файлов.