Php codeigniter配置文件pic上传

Php codeigniter配置文件pic上传,php,html,codeigniter,upload,Php,Html,Codeigniter,Upload,我正试图上传一个用户的个人资料头像。我试图做的是将用户pic上传到/assets中,并将路径存储在我的表“users”中的“avatar”字段下。因此,我阅读了在线codeigniter教程,但我无法理解其中的一些方面。首先,我认为上传图片的表格如下: <div class="profile-img"> <img class = "rounded-corners" src="https://encrypted-tbn0.gsta

我正试图上传一个用户的个人资料头像。我试图做的是将用户pic上传到/assets中,并将路径存储在我的表“users”中的“avatar”字段下。因此,我阅读了在线codeigniter教程,但我无法理解其中的一些方面。首先,我认为上传图片的表格如下:

 <div class="profile-img">
                        <img class = "rounded-corners" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS52y5aInsxSm31CvHOFHWujqUx_wWTS9iM6s7BAm21oEN_RiGoog" alt="profile image"/>
                        <div class="file btn btn-lg btn-primary">
                        Change photo
                        <?php echo form_open_multipart('pages/do_upload');?>
                            <input type="file" name="avatar"/>
                            <input type="submit" value="upload"/>
                        </div>
                    </div>
但是我甚至不能把照片上传到文件夹里。。。另外,我必须想出一个好主意来重命名我上传的图片,并将路径存储在列的表中。。。但我想上传图片,至少在开始的时候

纵断面图:

<div class="container emp-profile">
        <form method="post">
            <div class="row">
                <div class="col-md-4">
                    <div class="profile-img">
                        <img class = "rounded-corners" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS52y5aInsxSm31CvHOFHWujqUx_wWTS9iM6s7BAm21oEN_RiGoog" alt="profile image"/>
                        <div class="file btn btn-lg btn-primary">
                        Change photo
                        <?php echo form_open_multipart('pages/do_upload');?>
                            <input type="file" name="avatar"/>
                            <input type="submit" value="upload"/>
                        </div>
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="profile-head">
                                <h6>
                                Hi <?php echo($user->username) ?>
                                </h6>
                        <ul class="nav nav-tabs" id="myTab" role="tablist">
                            <li class="nav-item">
                                <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Profile Details</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Your Vehicles</a>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-md-4">
                    <div class="profile-work">
                    <!-- here you can add some more info, but the database needs to be upgraded for that-->
                    </div>
                </div>
                <div class="col-md-8">
                    <div class="tab-content profile-tab" id="myTabContent">
                        <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
                                    <div class="row">
                                        <div class="col-md-6">
                                            <label>Username</label>
                                        </div>
                                        <div class="col-md-6">
                                            <p><?php echo($user->username) ?></p>
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-md-6">
                                            <label>Email</label>
                                        </div>
                                        <div class="col-md-6">
                                            <p><?php echo($user->email) ?></p>
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-md-6">
                                            <label>Member since</label>
                                        </div>
                                        <div class="col-md-6">
                                            <p><?php echo($user->created_at) ?></p>
                                        </div>
                                    </div>
                        </div>

换照片
你好
用户名

电子邮件

成员自

@TimBrownlaw 我再次检查了我的代码和所有东西。。。现在我的观点是: 换照片 这是我的控制器:

public function do_upload()
{
    $config['upload_path'] = './assets';
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = 100;
    $config['max_width'] = 1024; 
    $config['max_height'] = 768;

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

    $data = array('upload_data' => $this->upload->data());

    $this->load->view('profie', $data);

}
public function do_upload()
{
    $config['upload_path'] = 'uploads/';
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = 10000;
    $config['max_width'] = 1024; 
    $config['max_height'] = 768;

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

    $data = array('upload_data' => $this->upload->data());
    var_dump($data);
    $this->load->view('profile', $data);

 }
现在我收到这样一条消息:“上传路径似乎无效。”但根据我的计算机,我有权限。。。这可能是与docker或lamp服务器有关的问题吗? 我认为这与写权限有关,因为下面的代码一直在说我的目录不可写

<?php if(is_writable(base_url('uploads'))){
echo 'writable';
}
 else { echo  (base_url('uploads'). ' ' ."is not writable");} ?>


很明显,我尝试了chmod777“目录”,根据我的mac,我获得了读写权限。但是不能上传这张该死的照片。它是否与docker的灯容器设置有关

我认为您应该去重新阅读codeigniter示例。您遗漏了大量代码等。另外,您在控制器中的视图拼写是否正确?profie应该是个人资料吗?是的,应该是,但是如果我连图片都不能保存。。。哈哈,不管怎样,我还在网上寻找如何做到这一点。。。代码与教程中的不同,出于我的基本目的,它被简化了。。。我会再看一遍,但我觉得我需要一个模型来上传我表中的路径…它提到了一些东西,比如。。。文件夹是否可写。。。它还检查上传是否有效。我不确定你是否看到任何错误等,除了它只是没有出现在你的预期文件夹…没有错误显示,该文件夹是可写的。。。这是一种行为:显示配置文件页面,我单击上传图片,我选择图片,我按ok,对话框窗口关闭,配置文件页面显示无差异。你是说在表单_open _multipart中?当我复制视图代码粘贴到这里时,我看到了错误。。。我的控制器叫pages,方法是do_upload,所以我应该写pages/do_upload。。。不管怎样,当我有时间的时候,我会重新阅读教程,重新尝试一切,老实说,我现在有点困惑。。。我会再打给你的,谢谢你的耐心。