Codeigniter: загрузка изображений - PullRequest
3 голосов
/ 13 января 2011

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

Вот новый HTML:

<input type="file" name="file_1" />
<input type="text" name="image_description_1" class="text-input"/>

Вот новая функция _submit:

if($this->CI->input->post('file_1')){
    $config['overwrite'] = TRUE;
    $config['allowed_types'] = 'jpg|jpeg|gif|png';
    $config['max_size'] = 2000;
    $config['upload_path'] = realpath(APPPATH . '../assets/uploads/avatars');

    $this->CI->load->library('upload', $config);
    $this->CI->upload->do_upload();

    $image_data = $this->CI->upload->data();

    $image['description'] = $this->CI->input->post('image_description_1');
    $image['user_id'] = $id;
    $image['image'] = $image_data['file_name'];

    $this->CI->db->insert('report_images',$image);

}

Описание и user_id правильно отправляются, но файл утерян.

Должен ли я делать что-то другое? Не совсем уверен, что происходит не так.

Ответы [ 4 ]

8 голосов
/ 14 января 2011

Прежде всего, не получите do_upload() как должное, вы должны подтвердить загрузку :

if ( ! $this->upload->do_upload('file_1'))
{
    // something went wrong, display errors
}   
else
{
    // everything is fine
}

Кроме того, скорее всего, это ваш upload_path, проверьтедокумент, на который я ссылался:

//You'll need a destination folder for your uploaded images. Create a folder at the root of your CodeIgniter installation called uploads and set its file permissions to 777.  
$config['upload_path'] = './uploads/';

Поэтому вам может потребоваться изменить настройки на что-то вроде:

$config['upload_path'] = './assets/uploads/avatars/';
4 голосов
/ 13 января 2011

codeigniter ожидает, что ваш файл ввода будет иметь имя userfile, если вы не укажете в своем коде, как это,

$field_name = "some_field_name";
$this->upload->do_upload($field_name)
1 голос
/ 14 января 2011

Я не уверен, в чем проблема. Но, может быть, вам помогут следующие ссылки.

Ошибка загрузки файла в codeigniter

Также вы можете инициализировать конфигурацию для установки настроек.

$this->upload->initialize($config);

Класс загрузки файлов в codeigniter

0 голосов
/ 22 декабря 2013

Убедитесь, что имя входного файла установлено в «userfile», потому что функция загрузки ожидает файлы, поступающие из поля ввода, чье имя установлено в «userfile»

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