如何将图像路径和名称上传到数据库 - Codeigniter

Posted

技术标签:

【中文标题】如何将图像路径和名称上传到数据库 - Codeigniter【英文标题】:How to upload image path and name to database - Codeigniter 【发布时间】:2013-04-17 21:49:11 【问题描述】:

我知道这个问题已经被问过好几次了,但我发现的所有其他问题都与我想要的不同。

我想将文件名和文件路径上传到名为“factoryimages”的表中。

最好的方法是什么?

我的控制器功能:

function do_upload()

    $config['upload_path'] = './assets/uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '1000';
    $config['max_width']  = '';
    $config['max_height']  = '';
    $config['overwrite'] = TRUE;
    $config['remove_spaces'] = TRUE;

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

    if ( ! $this->upload->do_upload())
    
        $error = array('error' => $this->upload->display_errors());

        $this->load->view('members/header');
        $this->load->view('members/upload_form', $error);
        $this->load->view('members/footer');
    
    else
    
        $data = array('upload_data' => $this->upload->data());
        $this->load->view('members/header');
        $this->load->view('members/upload_success', $data);
        $this->load->view('members/footer');
    

我在我的模型中尝试过,但没有成功:

function insert_images()

    $insert_data = array(
    'filename' => $image_data['file_name'],
    'fullpath' => $image_data['full_path']
    );

    $this->db->insert('bedrijfimages', $insert_data);

我的看法:

<?php echo $error;?>
<br/>
<?php echo form_open_multipart('upload/do_upload');?>

<input type="file" name="userfile" size="20" multiple="true" />

<br /><br />

<input type="submit" value="upload" />

</form>

编辑:

我收到一个服务器错误,但我看不到它是什么。

我的控制器功能:

function do_upload()

    $config['upload_path'] = './assets/uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '1000';
    $config['max_width']  = '';
    $config['max_height']  = '';
    $config['overwrite'] = TRUE;
    $config['remove_spaces'] = TRUE;

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

    if ( ! $this->upload->do_upload())
    
        $error = array('error' => $this->upload->display_errors());
        $this->upload_model->insert_images($this->upload->data());
        $this->load->view('members/header');
        $this->load->view('members/upload_form', $error);
        $this->load->view('members/footer');
    
    else
    
        $data = array('upload_data' => $this->upload->data());
        $this->load->view('members/header');
        $this->load->view('members/upload_success', $data);
        $this->load->view('members/footer');
    

我的模型函数:

function insert_images($data = array())

    $data = array(
    'filename' => $image_data['file_name'],
    'fullpath' => $image_data['full_path']
    );

    $this->db->insert('bedrijfimages', $data);

可能是什么问题?

【问题讨论】:

【参考方案1】:

您必须将此数据作为数组$this-&gt;upload-&gt;data() 传递给您的插入

在您的控制器上,您必须在验证完成时进行设置

else

    $this->MODELNAME->insert_images($this->upload->data());
    $data = array('upload_data' => $this->upload->data());
    $this->load->view('members/header');
    $this->load->view('members/upload_success', $data);
    $this->load->view('members/footer');

在你的模型上:

function insert_images($image_data = array())
      $data = array(
          'filename' => $image_data['file_name'],
          'fullpath' => $image_data['full_path']
      );
      $this->db->insert('bedrijfimages', $data);

您可以在 CI 文档页面查看此数组中包含的信息:Codeigniter upload library

【讨论】:

我收到服务器错误。请查看我刚刚添加到问题中的代码。 我更新了我的答案.. 请注意,MODELNAME 必须是您拥有该 inserт_images 功能的图像模型的名称 我知道。我已经编辑了模型名称,但模型本身的模型名称错误。我称它为上传,但它被称为upload_model 你好,我必须添加图像类别..我如何添加图像类别? 不要对新问题使用旧答案。发布您的问题(带有您的代码示例),您将获得帮助..

以上是关于如何将图像路径和名称上传到数据库 - Codeigniter的主要内容,如果未能解决你的问题,请参考以下文章

如何在上传过程中重命名图像文件

通过相机获取最近捕获的图像的路径和图像名称

将图像上传到目录并将图像名称写入数据库

PHP和Ajax将文件路径上传到Mysql并将重命名的图像保存到文件夹失败

如何显示存储在数据库 PHP 中的图像路径? (Laravel 兰花)

如何将图像上传的标题更改为 django 类中的名称