Как сохранить путь к нескольким изображениям в базу данных, пока изображение сохраняется на сервере - PullRequest
0 голосов
/ 18 января 2019

У меня есть этот код о том, как сохранить несколько изображений на сервер, используя codeigniter и ajax

Я прошел этот код, хотя я все еще изучаю Ajax, Json и Javascript. Но я хочу быть в состоянии сохранить пути к изображениям (для всех изображений, загруженных в базу данных, чтобы я мог получить их для каждого пользователя. Только загрузка изображений из Facebook была). Код ниже находится в моем файле просмотра.

$(document).ready(function(){
                                        $('#profiles').change(function(){
                                            var files = $('#profiles')[0].files;
                                            var error = '';
                                            var form_data = new FormData();
                                            for(var count = 0; count<files.length; count++){
                                                var name = files[count].name;
                                                var extension = name.split('.').pop().toLowerCase();
                                                if(jQuery.inArray(extension, ['gif','png','jpg','jpeg']) == -1){
                                                    error += " " + count + "Invalid Image File(s)"
                                                }
                                                else {
                                                    form_data.append("profiles[]", files[count]);
                                                }
                                            }
                                            if(error == ''){
                                                $.ajax({
                                                    url:"<?php echo base_url(); ?>pastors/upload_image", 
                                                    method:"POST",
                                                    data:form_data,
                                                    contentType:false,
                                                    cache:false,
                                                    processData:false,
                                                    beforeSend:function() {
                                                        $('#upl_images').html("<label class='text-success'>Uploading...</label>");
                                                    },
                                                    success:function(data){
                                                        $('#upl_images').html(data);
                                                        $('#profiles').val('');

                                                        document.getElementById("success_msg").style.transition="all 0.9s ease";
                                                        document.getElementById("success_msg").style.opacity=0.5;
                                                        document.getElementById("success_msg").innerHTML="Images Successfully Uploaded";
                                                        //alert(pastor +" "+ "You saved a new report");
                                                        setTimeout(remove_prodiv, 1500);
                                                    }
                                                })
                                            }
                                            else{
                                            alert(error);
                                            }
                                        });
                                    });

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

public function upload_image(){
    if($_FILES["profiles"]["name"] != ''){
        $output = '';
        $config["upload_path"] = './programphoto/';
        $config["allowed_types"] = 'gif|jpg|png|jpeg';
        $this->load->library('upload', $config);
        $this->upload->initialize($config);
            for($count = 0; $count<count($_FILES["profiles"]["name"]); $count++){
                $_FILES["file"]["name"] = $_FILES["profiles"]["name"][$count];
                $_FILES["file"]["type"] = $_FILES["profiles"]["type"][$count];
                $_FILES["file"]["tmp_name"] = $_FILES["profiles"]["tmp_name"][$count];
                $_FILES["file"]["error"] = $_FILES["profiles"]["error"][$count];
                $_FILES["file"]["size"] = $_FILES["profiles"]["size"][$count];
                if($this->upload->do_upload('file')){
                    $data = $this->upload->data();
                    //$image=$data["file_name"];
                    //$this->pastors_model->SaveReport($image);
                    $output .= '
                        <div class="col-md-2">
                            <img src="'.base_url().'programphoto/'.$data["file_name"].'" class="img-responsive img-thumbnail" />
                        </div>
                    ';
                }
            }
        echo $output;   
    }
}

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

1 Ответ

0 голосов
/ 05 марта 2019

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

if($this->upload->do_upload('file')){
                    $data = $this->upload->data();
                    $output .= '
                        <div class="col-md-2">
                            <img src="'.base_url().'folder/'.$data["file_name"].'" class="img-responsive img-thumbnail" />
                        </div>
                    ';
                    $filename = $data['file_name'];
                    $this->Model->save_file($filename);
                }
...