codeigniter, загрузка изображения формы - PullRequest
0 голосов
/ 30 сентября 2019

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

Но у меня проблемы с записью в базу данных.

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

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

public function send_Basvur_message(){

    $config['upload_path']          = './panel/uploads/basvur_v/';
    $config['allowed_types']        = 'jpg|png';
    $config['max_size']             = 4096;
    $config['overwrite']            = false;
    $config['encrypt_name']         = false;
    $config['remove_space']         = true;

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

    $upload = $this->upload->do_upload('avatara');

    $this->load->library("form_validation");
    $this->load->model("Basvur_model");

    $this->form_validation->set_rules("name", "Ad", "trim|required");
    $this->form_validation->set_rules("email", "E-posta", "trim|required|valid_email");
    $this->form_validation->set_rules("subject", "Konu", "trim|required");
    $this->form_validation->set_rules("message", "Mesaj", "trim|required");
    $this->form_validation->set_rules("avatar", "avatar", "trim|required");
    $this->form_validation->set_rules("captcha", "Doğrulama Kodu", "trim|required");

    if($this->form_validation->run() === FALSE) {
        // TODO Alert...
        $this->session->set_flashdata('info','Action Completed');
        redirect(base_url("basvuru"));
    } else {

        $insert = $this->Basvur_model->add(
            array(
                "name"          => $this->input->post("name"),
                "email"         => $this->input->post("email"),
                "message"       => $this->input->post("message"),
                "subject"       => $this->input->post("subject"),
                "avatar"        => $this->input->post("avatar"),
                "created_at"    => date("Y-m-d H:i:s")
            )
        );

        if($this->session->userdata("captcha") == $this->input->post("captcha")){

            $name = $this->input->post("name");
            $email = $this->input->post("email");
            $subject = $this->input->post("subject");
            $message = $this->input->post("message");
            $avatar = $this->input->post("avatar");

            $email_message = "{$name} isimli ziyaretçi. Başvuru Yaptı <br><b>Mesaj : </b> {$message} <br> <b>E-posta : </b> {$email}";

            if(send_email("", "Yeni Aday başvurusu | $subject", $email_message)){
                $this->session->set_flashdata('success','Action Completed');
                redirect(base_url("basvuru"));
                // TODO Alert..
            } else {
                $this->session->set_flashdata('success','Action Completed');
                redirect(base_url("basvuru"));
                // TODO Alert..
            }

        } else {
            //başarısıs
        $this->session->set_flashdata('error','Action Not Completed');
        redirect(base_url("basvuru"));

        }}}

Ответы [ 2 ]

0 голосов
/ 01 октября 2019
you can get image name using 

$config['file_name'] =$_FILES['avatar']['name'];

$config['upload_path'] = './images/contents/'; /* NB! create this dir! */
$config['allowed_types'] = 'jpg|png|jpeg';
$config['max_size']  = '0';
$config['max_width']  = '0';
$config['max_height']  = '0';

$this->load->library('upload', $config);
if(!$this->upload->do_upload('avatar'))
{
 $data['msg'] = $this->upload->display_errors();
 $this->session->set_flashdata('msg_succ',$data['msg']);


}
else
{
  $data = $this->upload->data();
  $uploadedImages['image'] = $data['file_name'];
  $image = $uploadedImages['avatar'];

    here you can update image name in database`enter code here`             

}
0 голосов
/ 01 октября 2019

Нельзя использовать $this->input->post("avatar") для имени файла. Вы должны использовать $this->upload->data() для получения имени файла после загрузки файла с помощью $this->upload->do_upload('avatara'). Получить значение $this->upload->data() в переменной и отправить в модель.

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