将图像保存到服务器时如何将多个图像路径保存到数据库

时间:2019-01-17 23:55:47

标签: codeigniter-3 image-upload

我有这段代码介绍如何使用codeigniter和ajax将多个图像保存到服务器

尽管我仍在学习Ajax,Json和Javascript,但我已经阅读了这段代码。但是我希望能够保存图像路径(对于所有上传到数据库的图像,这样我就可以为每个用户检索它们。只是wasfacebook图像上传是)。下面的代码在我的视图文件中。

$(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 :(得分:0)

我已经开始工作了。
我要做的就是每次上传文件时都将文件名发送给模型,
像这样:

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);
                }