Установите изображение по умолчанию, если изображение не выбрано для загрузки в codeigniter - PullRequest
2 голосов
/ 22 сентября 2011

Я делаю скрипт, который будет загружать изображение и сохранять путь к изображению в базе данных. Единственная проблема, с которой я сталкиваюсь, - это если пользователь не загружает изображение, я хочу установить изображение по умолчанию.

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

мой контроллер

  if ( !$this->upload->do_upload('image'))
     {
    $error = array('error' => $this->upload->display_errors());
    $this->load->view('upload_success', $error);

     }
    else {
        $image_data=array('image_info' => $this->upload->data('image')); 
        $image_path=$image_data['image_info']['full_path'];

        $data =array(
        'submitedby'=>$username,
        'city'=>$this->input->post('towncity'),
        'image' => $image_path

);  
   }

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

Ответы [ 2 ]

3 голосов
/ 22 сентября 2011

В предложении, где do_upload() не удается, проверьте, был ли загружен файл.

if (!$this->upload->do_upload('image')) {

    if (!empty($_FILES['image']['name'])) {
        // Name isn't empty so a file must have been selected
        $error = array('error' => $this->upload->display_errors());
        $this->load->view('upload_success', $error);
    } else {
        // No file selected - set default image
        $data = array(
            'submitedby' => $username,
            'city'       => $this->input->post('towncity'),
            'image'      => 'path/to/default/image',
        );
    }

} else {
    $image_data = array('image_info' => $this->upload->data('image'));
    $image_path = $image_data['image_info']['full_path'];

    $data = array(
        'submitedby' => $username,
        'city'       => $this->input->post('towncity'),
        'image'      => $image_path,
    );
}

Это может быть изменено далее, но дело в том, что вы можете проверить $_FILES['field_name']['name'], чтобы увидеть, еслифайл был выбран.

1 голос
/ 23 сентября 2011

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

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